网格视图行更新和删除列表
本文关键字:删除 删除列 列表 更新 视图 网格 | 更新日期: 2023-09-27 18:32:04
我有一个gridview
,进入编辑模式时有下拉列表的列:
<asp:TemplateField HeaderText="genre" SortExpression="genre">
<EditItemTemplate>
<asp:DropDownList ID="DropDownList2" runat="server"
DataSourceID="SqlDataSource1" DataTextField="name" DataValueField="name">
</asp:DropDownList>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("genre") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
现在我想把它带到SqlDataSource
UpdateParameters
:
<UpdateParameters>
<asp:ControlParameter ControlID="DropDownList2" Type="string" PropertyName="SelectedValue" Name="genre" />
</UpdateParameters>
但是当我按下时,他给了我错误的消息
Could not find control 'DropDownList2' in ControlParameter 'genre'.
知道为什么吗?
DropDownList2
是位于 Grid 下的嵌套控件;因此,SqlDataSource 控件在 DropDownList2 的所有控件中都没有可见性。
您可以尝试使用 Update 事件在代码隐藏上分配值:
protected void SqlDataSource_Updating(object sender, SqlDataSourceCommandEventArgs e)
{
e.Command.Parameters["@genre"].Value = GetDropDownListValue();
}
注意:您需要在 GetDropDownListValue() 中使用 FindControl("DropDownList2")