【问题标题】:Find Gridview ID from within its RowCommand event从其 RowCommand 事件中查找 Gridview ID
【发布时间】:2016-06-10 08:24:09
【问题描述】:

我有三个 GridView,它们的 ID 是: grdvwFilteredNo1, grdvwFilteredNo2, grdvwFilteredNo3

每个都有自己的 RowCommand 事件(每个都由一个 LinkBut​​ton 触发,在一行上)

grdvwFilteredNo1_RowCommand(对象发送者,GridViewCommandEventArgs e) grdvwFilteredNo2_RowCommand(对象发送者,GridViewCommandEventArgs e) grdvwFilteredNo3_RowCommand(object sender, GridViewCommandEventArgs e)

我希望通过让所有三个 Gridview 调用相同的 RowCommand 事件来整合代码。 (这三个的事件代码是相同的,除了这一行,我通过它的 ID 来识别 gridview。
这是第一次活动的台词;
Int32 intSelectedEEid = (Int32)grdvwFilteredNo1.DataKeys[rowIndex].Values["EmployeeID"];)

我在想我可以使用变量而不是 gridview ID,但我似乎无法获取 gridview ID。使用这个
GridView gView = ((Control)e.CommandSource).Parent.Parent as GridView;
gView.ID 返回 null。

我认为 LinkBtn 的父级是行,而行的父级是 gridview。

如何从其 RowCommand 事件中找到 gridview id?感谢您的帮助。

【问题讨论】:

    标签: c# asp.net gridview rowcommand


    【解决方案1】:

    要从 RowCommand 事件到达 GridView,您应该使用类似这样的东西

    GridViewRow row = ((e.CommandSource as LinkButton).NamingContainer) as GridViewRow;
    GridView grd = row.NamingContainer as GridView;
    

    使用 Parent 不起作用,因为您的 LinkBut​​ton 的父级可能不是直接的 GridViewRow 而是它的 ItemTemplate,而是 NamingContainer 将遍历祖先链,直到找到实现 INamingContainer 接口的一个。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-29
      • 2012-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-06
      • 2023-03-18
      相关资源
      最近更新 更多