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参数。你不需要在回发上这样做。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- kendo-ui – Kendo UI网格过滤器无法在引导程序Modal中运行
- asp.net-core-mvc – 使用RedirectToAction传递TempData
- ASP.NET,jQuery,脏窗体和window.onbeforeunload
- asp.net-web-api – 在身份验证过滤器中的ChallengeAsync方
- asp.net-mvc-4 – MVC 4部分与单独的控制器和视图
- asp.net-mvc – ASP.NET MVC领域:它们对大型应用程序很重要
- 通过HTTPS在ASP.NET中安全的会话cookie
- ASP.NET MVC 3 Gotcha(Bug?):GET和POST的不同参数绑定优先
- entity-framework – 此版本的Entity Framework核心软件包管
- asp.net-mvc – 用于选择的KendoUI网格Ajax绑定参数
- asp.net-web-api – 如何使ASP.NET Web API只返回
- .net – 排除某些页面使用HTTPModule
- asp.net – 使用OpenOAuthProvider通过Google进行
- ASP.net会员强制用户离线(作为管理员)
- asp-classic – 经典ASP:捕获错误
- asp.net – 一个明智的PasswordStrengthRegularE
- 将linkbutton设置为asp.net中asp:panel的默认按
- asp.net-mvc – 使用ASP.NET MVC2中的DataAnnota
- asp.net-mvc-3 – 数据注释MVC3必需属性
- asp.net-mvc – asp.net mvc中的加密视图状态