自定义控件:
MyControlFrm.ascx
private void page_Load()
{
TextBox1.Text=DateTime.Now.ToString();
}为了说明问题,程序简化一下。主页面:
MainFrm.aspx
private void page_Load()
{
MyControlFrm balfrm=(MyControlFrm)LoadControl("MyControlFrm.ascx");
Page.Controls.Add(balfrm);
}发现除了第一次调用主页面后,TextBox1.Text获得了时间后,以后刷新主页面后,TextBox1.Text不再发生变化?
这是为什么?单点跟踪进入,发现TextBox1.Text得到了新的时间,可就是显示的时候,还是老时间,不变化!如果在自定义控件中加入一个按钮:
private void Button1_Click(object sender, System.EventArgs e)
{
TextBox1.Text=DateTime.Now.ToString();
}
调用后,点击这个按钮,TextBox1.Text会发生变化!为什么控件页面中Page_Load在第一次调用后,无法再为TextBox1.Text赋值了?真不知道这是为什么?请高手指教!万分感谢!
MyControlFrm.ascx
private void page_Load()
{
TextBox1.Text=DateTime.Now.ToString();
}为了说明问题,程序简化一下。主页面:
MainFrm.aspx
private void page_Load()
{
MyControlFrm balfrm=(MyControlFrm)LoadControl("MyControlFrm.ascx");
Page.Controls.Add(balfrm);
}发现除了第一次调用主页面后,TextBox1.Text获得了时间后,以后刷新主页面后,TextBox1.Text不再发生变化?
这是为什么?单点跟踪进入,发现TextBox1.Text得到了新的时间,可就是显示的时候,还是老时间,不变化!如果在自定义控件中加入一个按钮:
private void Button1_Click(object sender, System.EventArgs e)
{
TextBox1.Text=DateTime.Now.ToString();
}
调用后,点击这个按钮,TextBox1.Text会发生变化!为什么控件页面中Page_Load在第一次调用后,无法再为TextBox1.Text赋值了?真不知道这是为什么?请高手指教!万分感谢!
解决方案 »
- Visual Studio 2005(2003)无法安装!
- 错误:GridView“GridView1”激发了未处理的事件“PageIndexChanging”。
- js 调用服务端按钮OnClick事件 出错
- 如何客户端控制 asp.net 控件 TreeView
- 【浮躁】
- 请问我在网页的html状态下要加入什么代码才能使一段文字先从右向左滚动,到了左边后又由左向右滚动,并
- xml xsl TO html的问题
- 不同页面中的控件可以相互访问吗?
- 那个高人知有asp.net(2.0)的免费空间。并且支持sql2000的
- 微软专家在吗,其他(她)人遇到过这样的问题吗?
- 数据操作的问题~?
- 关于开发网站程序的问题!
private void page_Load()
{
MyControlFrm balfrm=(MyControlFrm)LoadControl("MyControlFrm.ascx");
balfrm.TextBox1.Text="1111";
Page.Controls.Add(balfrm);
}
这样也没法赋值!而且:string aaa=balfrm.TextBox1.Text;也无法取值。取出来的是空。
private void Page_PreRender(object sender, System.EventArgs e)
{
TextBox1.Text=DateTime.Now.ToString();
}
像上面一样把TextBox1.Text=DateTime.Now.ToString();放到自定义控件PreRender事件中就可以了!明白的解释一下为什么?
1)控件的Init事件
2)控件所在页面的Init事件
3)控件所在页面的Load事件
4)控件的Load事件
5)控件所在页面的PreRender事件
6)控件的PreRender事件
应该是第5步PreRender改掉了值,在控件的load里也写上代码,单步过去看下。