所以我有一些GridView。编辑行时,特定列会从标签更改为DropDownList。此下拉列表的内容通过一些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'。
很明显,我的下拉不会被发现。也许它被这一点摧毁了?
答案 0 :(得分:3)
在网格的更新事件中尝试此操作。
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
}
答案 1 :(得分:0)
我认为你需要做的是:
SelectedIndexChange
个事件附加到DropDownlist
Gridview
SelectedValue
。UpdateParameters
的引用,并使用SelectedValue
以编程方式填充相应的参数。Update
方法。答案 2 :(得分:0)
您可以尝试这样做:
假设gridview的ID是gridview1
<asp:ControlParameter ControlID="gridview1$ServiceCategoriesGvDropDown" PropertyName="SelectedValue" />