我不太了解ASP.Net,但我正在尝试为消息框创建一个新的控件.您输入一些信息,然后按一个按钮.
但是,由于某些奇怪的原因,按下按钮时,第二次调用Page_Load(),并将所有成员变量重置为null!我需要那些变量,并且Page_Load()没有理由第二次被调用!当然,callstack是没用的.
Joe*_*orn 18
请记住,在每次导致任何类型的回发时,在ASP.Net中,包括处理按钮点击等事件,您正在使用必须从头开始重建的页面类的全新实例.您之前为在服务器上构建页面而完成的任何工作都已消失.这意味着运行整个页面生命周期,包括页面加载代码,而不仅仅是点击代码.
总是两个,不多也不少.请求和响应.
当页面回发时,调用 Page_Load 方法。然后,一旦服务器实际处理页面并根据更改向您发送一个新页面,就会再次调用 Page_Load,实际上是第一次在发送给您的新页面上。
因此,如果您在 Page_Load 事件中提取数据或设置一些值,请将其包含在以下块中:
if(!Page.IsPostBack)
{
}
Run Code Online (Sandbox Code Playgroud)
保留一些你的状态。否则,您放入 Page_Load 事件的指令将每次都执行。
它有助于审查 ASP.Net 页面生命周期 :)
| 归档时间: |
|
| 查看次数: |
31070 次 |
| 最近记录: |