Все,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">