首页 / C# / c#events:第二级后没有开火
c#events:第二级后没有开火
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c#events:第二级后没有开火,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2103字,纯文字阅读大概需要4分钟。
内容图文
我搜索并尝试了很多东西,但是我无法获得以下代码.似乎当我在c#中有三个按钮时,如果我点击第一个按钮它会正确触发.但是,当我单击第二个按钮时,它无法加载第三个按钮.回到第一个.由于某些原因,事件似乎没有超过第一级.在此先感谢您的帮助.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Diagnostics;
public partial class testingSandbox : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
boot();
}
public void boot()
{
firstFunc();
}
public void firstFunc()
{
Debug.WriteLine("func1");
Button btn1 = new Button();
btn1.Text = "btn1";
btn1.ID = "btn1";
btn1.Click += new EventHandler(secFunc);
form1.Controls.Add(btn1);
}
public void secFunc(object sender, EventArgs e)
{
Debug.WriteLine("func2");
Button btn2 = new Button();
btn2.Text = "btn2";
btn2.ID = "b2";
btn2.Click += new EventHandler(thirdFunc);
form1.Controls.Add(btn2);
Button btn1 = (Button)this.FindControl("btn1");
//btn1.Click-=new EventHandler(secFunc);
}
public void thirdFunc(object sender, EventArgs e)
{
Debug.WriteLine("func3");
Button btn3 = new Button();
btn3.Text = "btn3";
btn3.ID = "b3";
btn3.Click += new EventHandler(fourthFunc);
form1.Controls.Add(btn3);
}
public void fourthFunc(object sender, EventArgs e)
{
Debug.WriteLine("func4");
Button btn4 = new Button();
btn4.Text = "btn4";
form1.Controls.Add(btn4);
}
}
解决方法:
ASP.NET在每个请求上重新创建ENTIRE控制树.您在.ascx文件中编写的内容将转换为C#代码文件(您可以在ASP.NET Temporary Files文件夹中找到它们),该文件将创建控件,并且该代码将在每个请求上运行.但在你的情况下,会发生这种情况:
Request 1:
You start out with Button1.
Request 2:
You start out with Button1. A click event for it is received and processed.
In the event handler you add Button2. You end up with Button1 and Button2.
Request 3:
You start out with Button1. A click event for Button2 is received.
Unfortunately there is no Button2, since the control tree got recreated.
The event is ignored. You end up with just Button1.
ASP.NET webforms中的动态控件很难.您需要手动跟踪添加的控件,并在每个后续请求的开头重新创建它们. ASP.NET不记得这个给你.
内容总结
以上是互联网集市为您收集整理的c#events:第二级后没有开火全部内容,希望文章能够帮你解决c#events:第二级后没有开火所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。