这个问题有点诡异,先上代码:protected void Page_Load(object sender, EventArgs e)
{
tb = new TextBox();
Panel1.Controls.Add(tb);
tb.Text = "2";
tb.BackColor = System.Drawing.Color.Red;
if (!this.IsPostBack)
{
tb.Text = "1";
tb.BackColor = System.Drawing.Color.Blue;
}
}照理说,在执行完Panel1.Controls.Add(tb);后,tb应该立即经过初始化,加载视图,加载回发数据阶段,但根据运行结果,视图状态是被加载了(文本框的背景色),而回发数据未加载,即一开始赋值的“1”。这个加载过程ms在Page_Load阶段之后再加载的,因此覆盖掉了tb.Text="2"这个值。通过下面的语句可以发现:void _Default_LoadComplete(object sender, EventArgs e)
{
Response.Write(tb.Text);
}
页面加载完成后,tb的text属性被回传数据“1”所覆盖。
但如果tb控件是在OnInit方法中动态添加的页面中,则没有这个问题。
上面是Asp.net2.0中的代码,1.1中这个问题同样存在。不知道我有没有描述清楚问题,希望达人能够解释一下,谢谢!
{
tb = new TextBox();
Panel1.Controls.Add(tb);
tb.Text = "2";
tb.BackColor = System.Drawing.Color.Red;
if (!this.IsPostBack)
{
tb.Text = "1";
tb.BackColor = System.Drawing.Color.Blue;
}
}照理说,在执行完Panel1.Controls.Add(tb);后,tb应该立即经过初始化,加载视图,加载回发数据阶段,但根据运行结果,视图状态是被加载了(文本框的背景色),而回发数据未加载,即一开始赋值的“1”。这个加载过程ms在Page_Load阶段之后再加载的,因此覆盖掉了tb.Text="2"这个值。通过下面的语句可以发现:void _Default_LoadComplete(object sender, EventArgs e)
{
Response.Write(tb.Text);
}
页面加载完成后,tb的text属性被回传数据“1”所覆盖。
但如果tb控件是在OnInit方法中动态添加的页面中,则没有这个问题。
上面是Asp.net2.0中的代码,1.1中这个问题同样存在。不知道我有没有描述清楚问题,希望达人能够解释一下,谢谢!
解决方案 »
- 急:在ASP.NET中使用NHibernate连接远程Oracle 10g数据库问题-在线等
- 关于JS提交的问题
- gridview指定数据源后还要databind一次才能显示,是不是其他的控件像dropdownlist也一样,指定数据源不会自动显示?
- Asp.net 怎么下载远程服务器上的音乐文件,而且不能看到地址
- 大家帮忙看下 这段话有什么问题
- 请问在GridView的rowediting里为什么findcontrol不到控件,非常感谢
- win2000下运行asp.net程序出现如下错误?
- 为什么会是这样(水晶报表问题)
- 程序发布到服务器出问题 Could not load the assembly 'App_Web_9_boa3vj'.
- 根据word模版生成新Word的问题,更换图片
- 一个超级菜鸟问题,怎样取text的值。
- aspnet帐户与asp_net,asp.net帐户是一回事吗?
我上次问的帖子,你看看http://community.csdn.net/Expert/topic/4987/4987949.xml?temp=.7310755