2010-09-02 42 views
1

我使用LINQDataSource填充大学的GridView。使用LINQDataSource在GridView中不更新的TemplateField

每个大学都有一个关联的状态,它位于另一个表中并且由外键(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犯规甚至对国家的关键。

问题:如何让我的gridview知道我希望它更新此列?所有BoundFields似乎都工作...

回答

2

在EditItemTemplate中,您应该使用#Bind(“StateID”)而不是#Eval(“StateID”)。

+0

啊。谢谢,工作很好。 +1 +答案= D – Jason 2010-09-02 15:33:06

相关问题