1

我动态创建了两个链接按钮:

for (int i = 0; i < 2; i++) {
    LinkButton lb = new LinkButton();
    lb.ID = "lnk" + FileName;
    lb.Text = FileName;
    Session["file"] = FileName;
    lb.CommandArgument = FileName;
    lb.Click += new EventHandler(Lb_Click);
    Panel1.Controls.Add(lb);
    Panel1.Controls.Add(new LiteralControl("<br />"));
}

我有两个链接,即:

  1. 文件 11
  2. 文件 22

我需要确定点击了哪一个:

void Lb_Click(object sender, EventArgs e) {
    string id=lb.ID;

    //Here - how to get link button id which is clicked (either File11 id or File22 id)?
}
4

2 回答 2

5

在您的事件处理程序中:

LinkButton clickedButton = (LinkButton)sender;

然后,您可以使用clickedButton.ID

这是一个 MSDN 演练: http: //msdn.microsoft.com/en-us/library/aa457091.aspx,用于确定事件的发送者。

于 2010-04-27T10:00:15.540 回答
0

实际上,您不需要为动态生成的按钮生成 ID。因为当按钮或链接被点击时,事件处理程序不仅接收到事件本身,还接收到发送者信息。

String buttonText = (LinkBut​​ton)sender.Text;

多个按钮可以共享同一个事件处理程序,并根据不同的名称为单击的不同按钮执行相应的任务。

于 2015-02-27T05:09:25.237 回答