我使用 LINQDataSource 填充大学的 GridView。
每所大学都有一个关联的州,该州位于另一个表中,并通过外键 (StateID) 关联。
我在 GridView 中有一个 TemplateField,因此当您正常查看它时,它会显示来自 State 表的 StateName,当您编辑它时会显示一个 DDL,其中填充了 State 表中的所有内容。
<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 甚至没有状态键。
问题:如何让我的 gridview 知道我希望它更新此列?所有 BoundFields 似乎都可以工作......