我在使用GridView中的DropDownList时遇到问题,当使用内联编辑实际上从列表中选择了值时,会发布NULL值。
问题是我无法使用此方法将值绑定到我的SqlDataSource中的UpdateCommand:
SelectedValue ='<%#Bind(“Value”)%>'
原因是因为该值可能不存在于列表中,因此会抛出异常。
有没有办法可以在不使用SelectedValue的情况下将值绑定到UpdateCommand?
先谢谢。
答案 0 :(得分:0)
您可以使用RowDataBound设置SelectedValue;
<。>在.cs文件中protected void Grid_RowDataBound(object sender, GridViewRowEventArgs e)
{
GridView grid = (GridView)sender;
DropDownList DropDownList1 = (e.Row.FindControl("DropDownList1") as DropDownList);
HiddenField HiddenField1 = (e.Row.FindControl("HiddenField1") as HiddenField);
DropDownList1.SelectedValue = HiddenField1.Value;
}
<。>在.aspx文件中;
<Columns>
...
<asp:TemplateField HeaderText="Column Name">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("Value") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:HiddenField ID="HiddenField1" runat="server" Value='<%# Bind("Value") %>'></asp:HiddenField>
<asp:DropDownList ID="DropDownList1" runat="server">
...
</asp:DropDownList>
</EditItemTemplate>
</asp:TemplateField>
</Columns>