从UpdateView中的GridView下拉中获取选定的值

时间:2012-06-07 15:37:59

标签: c# asp.net gridview drop-down-menu

所以我有一些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'。

很明显,我的下拉不会被发现。也许它被这一点摧毁了?

3 个答案:

答案 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)

我认为你需要做的是:

  1. SelectedIndexChange个事件附加到DropDownlist
  2. 上的Gridview
  3. 抓住该事件的SelectedValue
  4. 抓取对您的DataSource的UpdateParameters的引用,并使用SelectedValue以编程方式填充相应的参数。
  5. 调用您的DataSource的Update方法。

答案 2 :(得分:0)

您可以尝试这样做:

假设gridview的ID是gridview1

<asp:ControlParameter ControlID="gridview1$ServiceCategoriesGvDropDown" PropertyName="SelectedValue" />