我在 GridView 中有 DropDownList。现在我想为下拉列表添加事件处理程序,它将对 SelectedIndexChanged 做出反应。我通过使用 GridView 的 RowDataBound 事件将 DropDownList 嵌套在 GridView 中。(http://www.highoncoding.com/Articles/169_DropDownList_Inside_GridView__Method_1_.aspx)谁能帮帮我,告诉我如何为下拉列表添加事件处理,好吗?
5 回答
好的,我遇到的问题解决了。要处理SelectedIndexChanged
嵌套在 GridView 内的 DropDownList,您只需将AutoPostback
属性设置为true
并将 SelectedIndexChange 事件指向某个过程。
我遇到问题的原因是我没有按照以下规则检查 Page_Load 函数(在将数据绑定到 GridView 期间)If Not Page.IsPostBack Then
:就这样。所以请不要忘记这样做!:)
在您的GridView1_RowDataBound
方法中,通过调用创建下拉列表时添加处理程序ddl.SelectedIndexChanged += new EventHandler(ddl_SelectedIndexChanged);
然后,声明void ddl_SelectedIndexChanged(object sender, EventArgs e)
处理逻辑的方法。该sender
参数将是对所选下拉列表的引用。
gridview 的两个事件用于下拉列表选择的索引更改。
RowDataBount
网格视图的事件处理程序(用于项目选择)。RowUpdating
网格视图的事件处理程序(用于使用网格视图更新所选项目)。
答案很有用。
我有一个类似的场景,我有一个要添加到产品库存中的项目列表。当我选择一个产品时,我需要在下一栏中显示它的单位(公斤/升)。
为此,我需要在网格视图中找到产品下拉列表所在的确切行。因此,在 selected_index_changed 事件中,我遍历了每个 gridview 行,并匹配了下拉 ID。
但问题是下拉列表的“id”在所有行中保持不变。因此,我又添加了一个条件来匹配 ddl 的客户端 ID 与发送者的客户端 ID,并且效果很好。
所以,想到分享我的经验。
谢谢 !
在网格视图上添加 onRowCommand 事件,将命令名称添加到下拉列表中,将其 autoPostback 属性设置为 true 并在 onRowCommand 事件中检查 e.CommandName(以防网格视图抛出其他事件,例如分页)。