gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 17:44:43 24 4
gpt4 key购买 nike

我对此做了一些研究,但我发现的所有解决方案似乎都无法解决我的问题。我在 C# 中有一个 asp.net web 应用程序,我想在从下拉列表中进行选择后动态添加一个提交按钮。

protected void Page_Load(object sender, EventArgs e)
{
submitButton.Text = "Submit";
submitButton.ID = "submitButton";
submitButton.Click += new EventHandler(submitButton_Click);

SelectionDropDownList.SelectedIndexChanged += new EventHandler(SelectionDropDownList_SelectedIndexChanged);

}


protected void SelectionDropDownList_SelectedIndexChanged(object sender, EventArgs e)
{
switch (SelectionDropDownList.SelectedIndex)
{
case 1:
//does a redirect
break;
case 2:
Panel1.Controls.Add(submitButton);
break;
case 3:
//does a redirect
break;
}
}

protected void submitButton_Click(object sender, EventArgs e)
{
//can't get this event to fire.
SubmitSearch();
}

最佳答案

这是一个时间问题。你的程序流程是这样的:

  • Page_Load 已执行,页面已呈现。
  • 已选择下拉菜单。回发被发送到服务器。 Page_Load 被执行。然后事件被发送到您的下拉实例。执行 SelectedIndexChanged。您的按钮已创建,页面已呈现并发送给客户端。
  • 按钮被按下。回发被发送到服务器。 Page_Load 被执行。 Asp 尝试执行该事件,但该按钮不再存在。因此该事件被忽略。

这是 Webforms 令人讨厌的细节之一,也是不使用它的一个很好的理由 - 如果您可以自由选择的话。如果你必须使用它,http://msdn.microsoft.com/en-us/library/ms178472.aspx可能会有帮助。

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

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