2008-12-11 3 views
0

Все,UserControl приводит к потере содержимого текстового поля в Gridview заголовке

Моя проблема заключается в том, что мой GridView заголовок, который содержит текстовые поля и т.д., которые пользователи могут вводить в каким-то образом теряет содержание этих текстовых полей, когда пользователь вынуждает постбэк - но только если у меня есть пользовательский элемент управления в заголовке. Это использует .NET 2.0.

Я создал базовое gridview, которое связывается с общим источником данных списка. Я добавил простой элемент управления пользователя (оберните текстовое поле) в заголовок, и я обновляю его текст во время события RowCreated (мой фактический код не так прост, это всего лишь тест).

В событии RowCreated я могу ссылаться на свой пользовательский контроль, а нормальные текстовые поля сохраняют значения (независимо от того, включено или нет gridview как ViewState. NB: я каждый раз переустанавливаю, если viewstate выключен). Однако, как только я получаю доступ к свойствам usercontrol, нормальные текстовые поля теряют содержимое и повторно отображаются как пустые.

Я полностью в тупике. Это должно быть ошибка, но я нигде не могу ее найти.

Пример кода:

protected void grdList_RowCreated(object sender, GridViewRowEventArgs e) 
    { 
     switch (e.Row.RowType) 
     { 
      case DataControlRowType.Header: 
       TextBoxWrapper tbw = (TextBoxWrapper)e.Row.FindControl("utxWrapper"); 
       TextBox txn = (TextBox)e.Row.FindControl("txtClientId"); 
       txn.Text = tbw.ClientId; 

       break; 
     } 
    } 

Удалите txn.Text = tbw.ClientId; и код нормально. NB: tbw не является нулевым, то есть содержит ссылку.

определение сетки:

<asp:GridView ID="grdList" runat="server" DataKeyNames="Id" AutoGenerateColumns="false" OnRowCreated="grdList_RowCreated" OnRowCommand="grdList_RowCommand" ShowFooter="true" EnableViewState="false"> 

ответ

0

Имея тот же вопрос, я считаю, что это ошибка MS, они не сохраняются эти пункты. И зачем им это нужно.

Смежные вопросы