从更新时的 GridView 内的下拉列表中获取所选值
本文关键字:获取 更新 GridView 下拉列表 | 更新日期: 2023-09-27 18:36:26
所以我有一些GridView。编辑行时,特定列将从标签更改为下拉列表。此下拉列表的内容是通过某些 SQL 数据源填充的。用户可以做出选择并单击"更新"。
如何实际获取下拉列表的 SelectedValue 属性?
我认为这会起作用:
<asp:GridView ... >
<Columns>
...
<EditItemTemplate>
<asp:DropDownList ID="ServiceCategoriesGvDropDown" AutoPostBack="True" .../>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ... />
</ItemTemplate>
</asp:TemplateField>
...
</Columns>
</asp:GridView>
然后用我的 SqlDataSource 中的 ControlParameter 连接它:
<UpdateParameters>
...
<asp:ControlParameter ControlID="ServiceCategoriesGvDropDown" PropertyName="SelectedValue" ... />
</UpdateParameters>
但是,我得到以下异常:
System.InvalidOperationException: 在 controlParameter 'ServiceCategoriesID' 中找不到控件 'ServiceCategoriesGvDropDown'。
很明显,我的下拉菜单没有找到。也许到这个时候它已经被摧毁了?
在网格的更新事件中尝试此操作。
protected void YourGrid_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
DropDownList ddl= (DropDownList )YourGrid.Rows[e.RowIndex].FindControl("ddlId");
string selectedvalue=ddl.selectedvalue;
//Your update code goes here
}
我认为你需要做的是:
- 将
SelectedIndexChange
事件附加到Gridview
上的DropDownlist
- 抓住该事件的
SelectedValue
。 - 获取对数据源
UpdateParameters
的引用,并以编程方式使用SelectedValue
填充相应的参数。 - 调用数据源的
Update
方法。
您可以尝试这样做:
假设网格视图的 ID 是网格视图 1
<asp:ControlParameter ControlID="gridview1$ServiceCategoriesGvDropDown" PropertyName="SelectedValue" />