加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 在页面加载中实现IsPostBack

发布时间:2020-12-16 00:44:26 所属栏目:asp.Net 来源:网络整理
导读:我使用ASP.NET越多if(!IsPostBack){}似乎没有意义… 第一个例子: 例如,我刚刚Googled一个问题,他们说这是解决方案的一部分: if (!Page.IsPostBack){ Page.LoadComplete += new EventHandler(Page_LoadComplete);} 其中完全按照编码方式,LoadComplete只
我使用ASP.NET越多if(!IsPostBack){}似乎没有意义…

第一个例子:

例如,我刚刚Googled一个问题,他们说这是解决方案的一部分:

if (!Page.IsPostBack)
{
   Page.LoadComplete += new EventHandler(Page_LoadComplete);
}

其中完全按照编码方式,LoadComplete只会在第一次加载时触发。单击按钮或触发回发的任何内容后,LoadComplete事件将被取消挂起,从而跳过事件处理程序。因此,他们的“修复”只适用于第一次加载=没有价值。我立即评论了if(!Page.IsPostBack){},现在事件总是按照需要触发。

第二个例子:

我试图将事件挂起到一个动态创建的按钮(顺便说一下,我无法上班[GRR!])。我看到这样的例子:

myEditToggleButton = new Button();
myEditToggleButton.ID = "editToggleButton"; 
//^GOTTA HAVE THIS FOR EVENTS TO WORK! (supposedly,I haven't seen it work...)
if (!IsPostBack)
{
   myEditToggleButton.Click += new EventHandler(myEditToggleButton_Click);
}
Controls.Add(myEditToggleButton);

像第一个例子一样,我的理解是,在第一页加载之后事件不会被挂起,因此按钮在一次点击之后是“惰性的”(因为点击触发回发)。

题:

什么时候应该使用if(!IsPostBack){}?我猜测它只与标记创建的控件有关。

解决方法

简而言之,您每次只需要在第一次加载时执行某些操作即可使用它。

Page.IsPostBack的经典用法是数据绑定/控制初始化。

if(!Page.IsPostBack)
{
   //Control Initialization
   //Databinding
}

在ViewState和ControlState上持久存在的内容不需要在每个回发上重新创建,因此您可以检查此条件以避免执行不必要的代码。

另一个经典的用法是获取和处理Querystring参数。你不需要在回发上这样做。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读