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

前端之家收集整理的这篇文章主要介绍了asp.net – 在页面加载中实现IsPostBack前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用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参数。你不需要在回发上这样做。

猜你在找的asp.Net相关文章