我使用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){}?我猜测它只与标记创建的控件有关。