Я прочитал несколько источников, в которых говорится, что в Gridview не сохраняется свойство Gridview.DataSource при обратной передаче. Насколько я понимаю, в терминах ASP.NET постбэк - это любая загрузка страницы, которая не является первой загрузкой страницы (см. MSDN ).
У меня ситуация с двумя очень похожими сетками.
GvOne.DataSource недействителен при обратной передаче.
GvTwo.DataSource НЕ является нулевым при обратной передаче.
Единственным большим отличием от нескольких отличающихся столбцов является то, что GvOne заполнен Entity Framework и LINQ. GvTwo заполняется таблицей данных, заполненной SqlDataAdapter.
Кроме того, GvOne и GvTwo имеют TemplateField с TextBox, который я использую для сбора пользовательского ввода. Оба используют один и тот же код для извлечения TextBox.Text при обратной передаче:
TextBox tb = (TextBox)GvOne.Rows[i].FindControl("actualTxt");
GvOne правильно собирает tb.Text. GvTwo всегда находит значение tb.Text равным 0 .
Базовый код Gridview:
<asp:GridView ID="GvOne" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:TemplateField HeaderText="Return">
<ItemTemplate>
<asp:TextBox id="actualTxt" runat="server" Text='0' Width="40px"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
...
</Columns>
</asp:GridView>
<asp:GridView ID="GvTwo" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:TemplateField HeaderText="Order">
<ItemTemplate>
<asp:TextBox id="actualTxt" runat="server" Text='0' Width="40px"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
...
</Columns>
</asp:GridView>
Изменение GvTwo для использования Entity Framework и LINQ является потенциальным решением, хотя и крупным предприятием. Кто-нибудь знает, что здесь происходит?
ОБНОВЛЕНИЕ (см. Мой комментарий к ответу Джоэла Этертона)
В связи с популярным спросом здесь приведен код для заполнения сетки в событии Page_Load для GvTwo (GvOne аналогичен):
ordersGV.DataSource = dataSetObject.Tables["activeParts"];
ordersGV.DataBind();
При поиске в коде я не нашел других ссылок на ordersGv.Datasource и других событий, связанных с жизненным циклом страницы.