关于Button控件的事件与页面加载事件的关系

zhouqing19871024 2009-08-12 11:25:49
最近发现一个很严重的问题:譬如在页面中有一个TextBox控件,在Page_Load事件中设置其文本为“abcdefg” 在该页面的Button1的Click事件中又将其设置为“hhhhhhhh” 本来点击button1控件后其文本应该变为“hhhhhhhhh”,但为什么还是原来的文本呢?

通过断点跟踪发现,每次在点下button1控件时,编译器并不是直接去执行click事件中的代码,而是先去重新加载页面,即执行Page_Load事件,然后再执行click事件,于是我断言:单击button控件都会先去加载页面然后再执行click事件中的代码。 但是有人却跟我说不是这样的,而正好是跟我的想法相反,但为什么断点跟踪的时候却是先加载再执行click事件呢?
请大侠们各抒己见,这页面的事件的发生顺序和button控件事件的发生顺序到底是怎样的啊?
最近被此等问题困扰已久,望高手赶快给点意见吧!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
...全文
177 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Adechen 2009-08-12
  • 打赏
  • 举报
回复
页面重新加载了一次
在Page_Load里面加
if(!IsPostBack)
{

}
WInScar 2009-08-12
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 lunasea0_0 的回复:]
Page_Load肯定是比control的Event先发生

如果你希望Page_Load里面的代码只在第一次发生
在Page_Load里面加
if(!IsPostBack)
{

}
[/Quote]

ispostback判断页面是否是被传回的,如果不是,值为false,代表页面是第一次被加载。
那么,你希望实现的就是,在第一次被加载的时候,控件文本为某某某。
ispostback值为true时,说明是被传回的,那么,此时,你就不能再给控件文本赋值,否则,无论你怎么写BUTTON事件,控件文本的值都是不会改变的。因为,每次加载,你都会给控件文本赋值成某某某。
这样,自然是无法实现你想要的功能的。
Aarom123 2009-08-12
  • 打赏
  • 举报
回复
。。。I 服了 YOU。。
你想笑死我啊。。。
IHandler 2009-08-12
  • 打赏
  • 举报
回复
就是理解Page.IsPostBack属性
当页面第一次加载或页面回发时为false
Jinglecat 2009-08-12
  • 打赏
  • 举报
回复
你说的都是地球人知道的

Page_Load {
if(!IsPostBack) {
// here...........
}
}
moduofanchen 2009-08-12
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 lunasea0_0 的回复:]
Page_Load肯定是比control的Event先发生

如果你希望Page_Load里面的代码只在第一次发生
在Page_Load里面加
if(!IsPostBack)
{

}
[/Quote]

正解
lunasea0_0 2009-08-12
  • 打赏
  • 举报
回复
如果希望知道页面加载的顺序,请问Trace="true"
参考http://blog.csdn.net/lunasea0_0/archive/2009/08/08/4426163.aspx
lunasea0_0 2009-08-12
  • 打赏
  • 举报
回复
Page_Load肯定是比control的Event先发生

如果你希望Page_Load里面的代码只在第一次发生
在Page_Load里面加
if(!IsPostBack)
{

}
bychgh 2009-08-12
  • 打赏
  • 举报
回复
帮顶
zyug 2009-08-12
  • 打赏
  • 举报
回复
呵呵,我习惯性的在 Page_Load中写

//这里写每次都要执行的代码
if(Page.IsPostBack)return;
//这里写只执行一次的代码
slund 2009-08-12
  • 打赏
  • 举报
回复
设置只在第一次加载时进行TextBox控件的显示文本的初始化。
slund 2009-08-12
  • 打赏
  • 举报
回复
设置只在第一次加载时进行TextBox控件的显示文本的初始化。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧