【问题标题】:Adding Event Handler to DropDownList inside GridView - how to?将事件处理程序添加到 GridView 内的 DropDownList - 如何?
【发布时间】:2010-05-03 13:22:09
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      在您的GridView1_RowDataBound 方法中,通过调用ddl.SelectedIndexChanged += new EventHandler(ddl_SelectedIndexChanged); 创建下拉列表时添加处理程序

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

      【讨论】:

      • 如您所说,之前尝试过这样做,但没有成功。 :( 事件 SelectedIndexChanged 没有引发。知道为什么吗?我也尝试在 ascx.vb 文件中添加事件......同样没有工作......事件没有引发。
      • 您是否尝试将下拉菜单的“AutoPostBack”属性设置为“true”?
      • 是的,它设置为 true。回发发生。
      • 似乎 RowCommand 也没有被提升。 :(请帮忙!
      • 只需在 ascx 控件中添加 OnSelectedIndexChange 即可。
      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

        答案很有用。

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

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

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

        所以,想分享一下我的经验。

        谢谢!

        【讨论】:

          【解决方案5】:

          在网格视图上添加 onRowCommand 事件,将命令名称添加到下拉列表中,将其 autoPostback 属性设置为 true 并在 onRowCommand 事件中检查 e.CommandName(以防网格视图抛出其他事件,例如分页)。

          【讨论】:

          • 我无法成功添加 RowCommand。 :( 在我尝试时它总是会出现一些错误。
          猜你喜欢
          • 2017-11-26
          • 1970-01-01
          • 2021-02-26
          • 2018-08-24
          • 1970-01-01
          • 2014-08-03
          • 1970-01-01
          • 1970-01-01
          • 2012-11-06
          相关资源
          最近更新 更多