C# 处理Dynamicly生成表的LinkButton事件?
我想处理动态创建的链接按钮的点击事件 但我没有得到btn。点击它 我有以下代码:C# 处理Dynamicly生成表的LinkButton事件?,c#,asp.net,.net,vb.net,C#,Asp.net,.net,Vb.net,我想处理动态创建的链接按钮的点击事件 但我没有得到btn。点击它 我有以下代码: Public Sub test() Dim row As New HtmlTableRow() Dim cell As New HtmlTableCell() For i = 0 To 10 row = New HtmlTableRow() For j = 0 To 3 cell =
Public Sub test()
Dim row As New HtmlTableRow()
Dim cell As New HtmlTableCell()
For i = 0 To 10
row = New HtmlTableRow()
For j = 0 To 3
cell = New HtmlTableCell()
cell.InnerText = "m"
Dim btn1 As New LinkButton
btn1.ID = i
cell.Controls.Add(btn1)
row.Cells.Add(cell)
Next
tableContent.Rows.Add(row)
Next
End Sub
C#代码:
公共无效测试()
{
HtmlTableRow行=新的HtmlTableRow();
HtmlTableCell=新的HtmlTableCell();
对于C中的(i=0;i),您可以这样做:
1.声明处理程序
protected void btn1_Click(object sender, EventArgs e)
{
}
2.分配处理程序:
LinkButton btn1 = new LinkButton();
btn1.Click += new EventHandler(btn1_Click);
您必须在botton上添加事件处理程序和ID才能识别它:
public void test()
{
HtmlTableRow row = new HtmlTableRow();
HtmlTableCell cell = new HtmlTableCell();
for (i = 0; i <= 10; i++) {
row = new HtmlTableRow();
for (j = 0; j <= 3; j++) {
cell = new HtmlTableCell();
cell.InnerText = "m";
LinkButton btn1 = new LinkButton();
btn1.ID = i;
// Add EventHandler for click events
btn1.Click += new EventHandler(LinkButton_OnClick);
cell.Controls.Add(btn1);
row.Cells.Add(cell);
}
tableContent.Rows.Add(row);
}
}
对于VB.NET,键入AddHandler btn1.
,然后您将看到Intellisense中的单击事件,如下所示:
AddHandler btn1.Click, AddressOf Me.LinkButton_OnClick
因为您有动态内容(表),您将需要在每次页面加载时重建表,而不仅仅是第一次。原因是页面加载
发生在链接按钮单击事件之前,因此在单击事件发生时,表需要重新创建;否则,您的单击事件处理程序将尝试与不存在的内容交互
有关页面生命周期和所有事件及其顺序的详细信息,请阅读。我在l上没有获得智能。单击您正在用VB尝试。请您能用C#尝试一下吗?请参见下面的最后一张图片EDIT@KevinHendricks意思是?@KevinHendricks:我无法解释你想说的话。粘贴完这些之后,所有的表格都被创建了我消失了你在每次回发(即Page\u Load
event)时重建表吗?不,如果没有回发,我会给出条件,然后只调用方法这是你的问题,你需要在每次回发时重建表,删除条件,每次单击(回发)表都会在那里。如果您不知道,页面加载
发生在ASP.NET页面生命周期中的链接按钮单击事件之前。请参阅更新的答案。@F.R.I.E.N.D.S.-没问题,很高兴您能正常工作。祝您好运。:-)
protected LinkButton_OnClick(object sender, EventArgs e)
{
var button = (LinkButton)sender;
// You can now access the id of the clicked link-button using button.ID
}
AddHandler btn1.Click, AddressOf Me.LinkButton_OnClick