C# 处理Dynamicly生成表的LinkButton事件?

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 =

我想处理动态创建的链接按钮的点击事件

但我没有得到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 = 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