C# 单击以编程方式添加的事件';t火

C# 单击以编程方式添加的事件';t火,c#,asp.net,events,C#,Asp.net,Events,我有一个aspx页面来搜索数据库中的内容。 我想把结果放在一个我以编程方式生成的表中,我想要一个按钮来下载数据 用于生成按钮的代码 TableCell download = new TableCell(); LinkButton downloadBt = new LinkButton(); downloadBt.Text = "Télécharger"; downloadBt.Click += new EventHandler(DownloadConstat); download.Control

我有一个aspx页面来搜索数据库中的内容。 我想把结果放在一个我以编程方式生成的表中,我想要一个按钮来下载数据

用于生成按钮的代码

TableCell download = new TableCell();
LinkButton downloadBt = new LinkButton();
downloadBt.Text = "Télécharger";
downloadBt.Click += new EventHandler(DownloadConstat);
download.Controls.Add(downloadBt);
tr.Controls.Add(download);
protected void DownloadConstat(object sender, EventArgs e)
{
    Debug.WriteLine("download");
}
当用户单击按钮时要执行的方法

TableCell download = new TableCell();
LinkButton downloadBt = new LinkButton();
downloadBt.Text = "Télécharger";
downloadBt.Click += new EventHandler(DownloadConstat);
download.Controls.Add(downloadBt);
tr.Controls.Add(download);
protected void DownloadConstat(object sender, EventArgs e)
{
    Debug.WriteLine("download");
}

问题是,单击按钮时不会调用该方法。

在创建动态控件之前,最好先查看页面生命周期。您遇到的问题是,在加载事件中,动态创建的控件丢失。因此,要使这些控件可用,必须在page_init event中重建它们,以便它们在load event期间可用。

您必须在
页面的
LoadComplete
-事件之前添加按钮并分配ist事件处理程序
ASP.NET页有一个生命周期,它决定了如何以及何时添加动态控件


请参阅。

您必须在每次回发时添加控件以保持其状态。因此,在页面加载时,再次添加按钮,然后它就会工作。我建议打开JavaScript控制台,查看页面上是否存在导致codebehind回调触发的脚本错误。