C# 在asp.net gridview行中单击了哪个链接

C# 在asp.net gridview行中单击了哪个链接,c#,sql,asp.net,C#,Sql,Asp.net,我在gridview的同一单元格中添加了两个链接和一些纯文本,我还拥有gridview\u SelectedIndexChanged函数,当单击任何链接时调用该函数,并基于grid的值运行我的db查询。gridview也是动态创建的,因此可以有不同数量的行 有没有办法知道在gridview\u SelectedIndexChanged函数中单击了Link1或Link2 protected void gridview_SelectedIndexChanged(object sender, Even

我在gridview的同一单元格中添加了两个链接和一些纯文本,我还拥有gridview\u SelectedIndexChanged函数,当单击任何链接时调用该函数,并基于grid的值运行我的db查询。gridview也是动态创建的,因此可以有不同数量的行

有没有办法知道在gridview\u SelectedIndexChanged函数中单击了Link1或Link2

protected void gridview_SelectedIndexChanged(object sender, EventArgs e)
{
    if (Link1.Clicked)
       {do this}
    elseif (Link2.Clicked)
       {do this}
}

您可能希望使用ASP.NET控件跟踪单击的链接

在html中

然后在后端添加一个事件处理程序,如

 public void Link1_Click(object sender, EventArgs e)
 {
//add variable marking this link was clicked
link1_clicked = true;
      Response.Redirect("Link1Destination.aspx");
 }
对link2也一样

将布尔变量
link1\u单击
link2\u单击
添加到后端代码的顶部。然后,当您需要检查单击的内容时,您可以过滤布尔变量,以查看使用for循环单击时标记为true的内容


基本上,事件处理程序是您的if-clicked语句。

在我的情况下,该解决方案不起作用,因为我是从asp gridview ItemTemplate中的代码中添加这些链接,如果我在ItemTemplate中添加OnClick,它将调用自己的on-click方法,而不是调用gridview selectedindexchanged函数,所以我不知道单击了哪一行。是大网格吗?您可以手动跟踪每个链接的行。除非网格是动态生成的,否则您可能无法预测这一点。我将为您做更多的研究。网格是动态生成的。
 public void Link2_Click(object sender, EventArgs e)
 {
//add variable marking this link was clicked
link2_clicked = true;
      Response.Redirect("Link2Destination.aspx");
 }