gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 12:10:34 25 4
gpt4 key购买 nike

我越用ASP.NET越if (!IsPostBack) {}似乎毫无意义……

第一个例子:

例如,我刚刚搜索了一个问题,他们说将其用作解决方案的一部分:

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

与编码完全相同,LoadComplete 只会在第一次加载时触发。单击按钮或触发回发的任何内容后,LoadComplete 事件将处于未 Hook 状态,从而跳过事件处理程序。因此,他们的“修复”仅适用于第一次加载 = 毫无值(value)。我及时注释掉了 if (!Page.IsPostBack) {}现在事件总是根据需要触发。

第二个例子:

我正在尝试将事件 Hook 到动态创建的按钮(顺便说一下,我无法开始工作 [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);

与第一个示例一样,我的理解是在第一个页面加载后不会 Hook 事件,因此单击后按钮是“惰性”的(因为单击触发了回发)。

问题:

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

最佳答案

简而言之,您每次只需要在第一次加载时执行某些操作时就使用它。
Page.IsPostBack的经典用法是数据绑定(bind)/控件初始化。

if(!Page.IsPostBack)
{
//Control Initialization
//Databinding
}
ViewState 上保留的内容和 ControlState不需要在每次回发时重新创建,因此您检查这种情况以避免执行不必要的代码。

另一个经典用法是获取和处理 Querystring参数。您无需在回发时执行此操作。

关于asp.net - IsPostBack 在页面加载中的实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3620883/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com