如何将多个网格视图绑定到单个事件处理程序

How can I bind multiple gridviews to a single eventhandler

我有几个 ASP 网格视图,当我单击索引值时,我会保存它们的关联 ID。我不想为每个人创建多个事件处理程序,而是想将它们全部绑定到一个事件处理程序中。 这是我的 asp 代码:

<asp:GridView ID="grvHighPriority" runat="server" OnSelectedIndexChanged="grv_SelectedIndexChanged" AutoGenerateSelectButton="true"/>

<asp:GridView ID="grvMediumPriority" runat="server" OnSelectedIndexChanged="grv_SelectedIndexChanged" AutoGenerateSelectButton="true"/>

还有我的 C# 代码:

protected void grv_SelectedIndexChanged(object sender, EventArgs e)
{
    String groupedErrorID = "";
    GridViewRow row = grvHighPriority.SelectedRow;
    groupedErrorID = row.Cells[1].Text.ToString();
    lblID.Text = groupedErrorID; //for testing purposes
}

目前事件处理程序只适用于最高优先级的网格视图,但我想将我所有的网格视图绑定到同一个事件处理程序。这可能吗? 提前致谢!

编辑:

感谢@Enrique 找到了可行的解决方案:

protected void grv_SelectedIndexChanged(object sender, EventArgs e)
{
    **GridView r = (GridView)sender;**
    String groupedErrorID = "";
    **GridViewRow row = r.SelectedRow;**
    groupedErrorID = row.Cells[1].Text.ToString();
    lblLogin.Text = groupedErrorID; //for testing purposes
}

这应该有效

    protected void grv_SelectedIndexChanged(object sender, EventArgs e)
        {
            String groupedErrorID = "";
            GridViewRow row = (((YourControl)sender).Parent.Parent as GridViewRow);        
            groupedErrorID = row.Cells[1].Text.ToString();
            lblID.Text = groupedErrorID; //for testing purposes
        }

YourControl 可以像 LinkBut​​ton、Button 等