在GridView中向DropDownList添加事件处理程序 - 如何?

时间:2010-05-03 13:22:10

标签: .net asp.net gridview drop-down-menu ascx

我在GridView中有DropDownList。现在我想为dropdownlist添加事件处理程序,它将对SelectedIndexChanged作出反应。 我通过使用GridView的RowDataBound事件在GridView中嵌套DropDownList。 (http://www.highoncoding.com/Articles/169_DropDownList_Inside_GridView__Method_1_.aspx) 有人可以帮助我,并告诉我如何为下拉列表添加事件处理吗?

5 个答案:

答案 0 :(得分:1)

好吧,我遇到的问题已经解决了。 要处理嵌套在GridView中的DropDownList的SelectedIndexChanged,您必须将AutoPostback属性设置为true并将SelectedIndexChange事件指向某个过程。

问题的原因是我没有检查Page_Load函数(在将数据绑定到GridView期间)遵循以下规则:If Not Page.IsPostBack Then。就这样。所以不要忘记这样做! :)

答案 1 :(得分:0)

GridView1_RowDataBound方法中,通过调用ddl.SelectedIndexChanged += new EventHandler(ddl_SelectedIndexChanged);

创建下拉列表时添加处理程序

然后,声明void ddl_SelectedIndexChanged(object sender, EventArgs e)方法来处理您的逻辑。 sender参数将是对所选下拉列表的引用。

答案 2 :(得分:0)

两个gridview事件用于下拉列表选择的索引已更改。

  1. RowDataBount网格视图的事件处理程序(用于项目选择)。
  2. RowUpdating网格视图的事件处理程序(用于使用网格视图更新所选项目)。

答案 3 :(得分:0)

答案很有用。

我有类似的情况,我有一个要添加到产品库存的项目列表。 当我选择产品时,我需要在下一栏中显示其单位(kg /升)。

enter image description here

为此,我需要在网格视图中找到产品下拉列表中的确切行。因此,在selected_index_changed事件中,我遍历每个gridview行,并匹配下拉列表ID。

  

但问题是所有行中下拉列表的“id”保持不变。   所以我添加了一个条件来匹配ddl的客户端ID   发件人的客户端ID,它工作得很好。

所以,考虑分享我的经验。

  

谢谢!

答案 4 :(得分:-1)

在网格视图上添加onRowCommand事件,将命令名称添加到下拉列表,将其autoPostback属性设置为true,并在onRowCommand事件中检查e.CommandName(如果您有其他事件,则网格视图将像寻呼)。