LINQDataSource を使用して大学の GridView を作成しています。
各大学には関連付けられた州があり、これは別のテーブルにあり、外部キー (StateID) によって関連付けられています。
私は GridView に TemplateField を持っているので、通常表示すると State テーブルからの StateName が表示され、編集すると State テーブルのすべてが取り込まれた 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 のキーさえありません。
質問: この列を更新したいことをグリッドビューに知らせるにはどうすればよいですか? すべての BoundFields が機能しているように見えます...