Я использую источник LINQDataSource для заполнения GridView университетов.
Каждый университет имеет ассоциированное состояние, которое находится в другой таблице и связано с внешним ключом (StateID).
У меня есть TemplateField в GridView, так что при его обычном просмотре он отображает StateName из таблицы состояний, а при редактировании - DDL, заполненный всем из таблицы состояний.
<asp:TemplateField ConvertEmptyStringToNull="False" HeaderText="State" SortExpression="State">
<EditItemTemplate>
<asp:DropDownList ID="DropDownListStateEdit" runat="server"
DataSourceID="LinqDataSourceStates" DataTextField="StateName" DataValueField="StateID"
SelectedValue='<%#Eval("StateID") %>'>
</asp:DropDownList>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%#Eval("State.StateName") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
Если я отлаживаюсь внутри RowUpdating, GridViewUpdateEventArgs.NewValues даже не имеет ключа для State.
Вопрос: Как я могу сообщить своему gridview, что я хочу обновить этот столбец? Кажется, все BoundFields работают ...