gpt4 book ai didi

c# - 如何将事件处理程序附加到运行时创建的 ASP.NET 控件?

转载 作者:太空狗 更新时间:2023-10-30 01:10:40 25 4
gpt4 key购买 nike

大家早上好

我有一个与控件和事件处理有关的问题。假设我想创建一个 LinkBut​​ton

protected void loadLinkButton()
{
ContentPlaceHolder content = (ContentPlaceHolder)this.Master.FindControl("MainContent");
LinkButton lnk = new LinkButton();
lnk.ID = "lnikBtn";
lnk.Text = "LinkButton";
lnk.Click += new System.EventHandler(lnk_Click);
content.Controls.Add(lnk);
}

这是事件处理程序:

protected void lnk_Click(object sender, EventArgs e)
{
Label1.Text = "ok!";
}

如果我在 Page_Load 中运行 loadLinkBut​​ton 函数,一切正常。但是,当我尝试通过单击简单按钮来运行 loadLinkBut​​ton 时,会创建链接按钮,但不会处理事件。

protected void Button1_Click(object sender, EventArgs e)
{
loadLinkButton();
}

我有什么办法可以解决吗?或者 loadLinkBut​​ton 必须始终在 Page_LoadPage_init 等时重新生成。

最佳答案

当使用动态控件时,我总是在 Page_Init 中添加控件,因为 View 状态加载将在 Init 之后立即发生。如果将它添加到 Page_Load,则有可能会丢失 View 状态。只需确保提供唯一的控件 ID。

关于c# - 如何将事件处理程序附加到运行时创建的 ASP.NET 控件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4145851/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com