gpt4 book ai didi

c# - 创建的动态按钮单击事件 OnPreRender 不会触发

转载 作者:行者123 更新时间:2023-11-30 18:00:08 30 4
gpt4 key购买 nike

我在 PreRender 事件中动态创建一个按钮,如下所示:

Button myButton = new Button();
myButton.Text = "Test";
myButton.Click += new EventHandler(myButton_Click);
myDiv.Controls.Add(myButton);

此按钮在浏览器中呈现,但当我单击该按钮时,不会触发单击事件。我试图在 PageLoad 事件中创建一个相同的按钮并且它工作得很好,但我必须在 PreRender 事件中创建这个按钮,因为是否创建这个动态按钮取决于我只在这次事件中获得的值(value)。当我单击在 PreRender 中创建的动态按钮时,单击事件会触发,我该怎么做?

最佳答案

您应该在页面的 OnInit 事件中将您的按钮添加到页面,并在 OnLoad 期间或之前连接它的点击事件,然后您可以启用/禁用您的按钮或使用您将拥有的变量使您的按钮可见/不可见预渲染事件。请参阅 Joel Coehoorn 对 this question 的回答更多细节。否则尝试使用 PlaceHolder 控件,尽管最终可能会更棘手。

protected override void OnInit (EventArgs e)
{
Button myButton = new Button();
myButton.Text = "Test";
myButton.Click += new EventHandler(myButton_Click);
myDiv.Controls.Add(myButton);

base.OnInit(e);
}

protected override void OnPreRender(EventArgs e)
{
myButton.Visible = myConditional;

base.OnPreRender(e);
}

关于c# - 创建的动态按钮单击事件 OnPreRender 不会触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10448918/

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