Как получить идентификатор кнопки ссылки, который генерируется динамически из кода в обработчике события
Я создал две кнопки ссылки динамически:
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 />"));
}
У меня есть две ссылки, а именно:
- File11
- File22
И мне нужно определить, какая из них была нажата:
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)?
}
2 ответа
В вашем обработчике событий:
LinkButton clickedButton = (LinkButton)sender;
Вы можете получить доступ к идентификатору, используя clickedButton.ID
Вот пошаговое руководство по MSDN: http://msdn.microsoft.com/en-us/library/aa457091.aspx для определения отправителей событий.
На самом деле вам не нужно генерировать идентификатор для динамически генерируемых кнопок. Потому что, когда нажимается кнопка ИЛИ Ссылка, обработчик события получает не только само событие, но и информацию об отправителе.
String buttonText = (LinkButton) sender.Text;
Несколько кнопок могут совместно использовать один и тот же обработчик событий и выполнять соответствующую задачу для кнопки различных сетей, нажатой на основе другого имени.