if(!IsPostBack)
作用:
Page.IsPostBack 是用来检查目前网页是否为第一次加载,当使用者第一次浏览这个网页时Page.IsPostBack 会传回False,不是第一次浏览这个网页时就传回True;所以当我们在Page_Load 事件中就可以使用这个属性来避免做一些重复的动作。
什么时候用到?
1.做一些初始化,如Dropdown的初始化,ViewState的初始值等,一般这个函数里面的内容是指第一次打开这个页面的时候要做的事.
2.对上面第一点的补充说明,为什么要在这个if(!IsPostBack){}函数里面弄这些初始化值,那是因为在加载页面后(首次加载页面IsPostBack的值为false),如果我们要在这个页面上点击按钮或其他东西提交时候,会重新执行Page_Load()函数里面的东西,但是不执行if(!IsPostBack){}里的东西,因为这时候IsPostBack的值是true.
引用别人例子如下:
假设你在page_load()里定义textbox为空,在button_click事件里给写一段往数据库存textbox的值。当用户往textbox里输入值以后,点击button时,就应该可以把往textbox里输入的值存到数据库里。可实际上,当点击button的时候,系统会自动先重新执行page_load(),也就是把textbox清空,再执行click 事件,你往数据库里存的值永远都是空。所以要在page_Load() 里加入if(!IsPostBack).
My Code Example:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindBDDropdown();
ViewState["RefUrl"] = Request.UrlReferrer.ToString();
}
}
Explain:
第一次加载有执行Page_Load的每一条语句,包括 if (!IsPostBack){}函数里的语句, 所以BindBDDropdown();语句有被执行,即Dropdown里有一系列值,但是这时,我从DROPDOWN里选一个值,然后点击页面的SAVE BUTTON,它执行事件的顺序是1.Page_Load{}--->2.SAVE BUTTON CLICK事件,所以如果没有if (!IsPostBack){}这个判断语句的话,BindBDDropdown()这个语句永远被执行,我们所选的值都不会被保存。
My Further Guessing:
如果按页面上的“重新加载此页”(即REFRESH PAGE),其实也是相当于第一次加载页面。if (!IsPostBack){}函数里的语句也会被一一执行。
注:本文内容整理于网络:http://hi.baidu.com/shijingxin/item/a4000989408354d55e0ec1e6
if(!IsPostBack)的更多相关文章
- MVC 中的 ispostback
总之呢就是在MVC中试下 ispostback那种效果, 环境就是:登录验证loinger, if (Request.HttpMethod == "POST"){} 没理解透彻 源 ...
- .net学习之母版页执行顺序、jsonp跨域请求原理、IsPostBack原理、服务器端控件按钮Button点击时的过程、缓存、IHttpModule 过滤器
1.WebForm使用母版页后执行的顺序是先执行子页面中的Page_Load,再执行母版页中的Page_Load,请求是先生成母版页的控件树,然后将子页面生成的控件树填充到母版页中,最后输出 2.We ...
- IsPostback的原理
ispostback:就是判断页面是首次加载的,还是数据回发(有get或者post请求过的)后的页面.上代码吧,直观点. 1.asp.net页面 <body> <form id=&q ...
- Webform——中国省市三级联动以及IsPostBack
首先要明白Webform的运行顺序,当开始启动时候,首先执行的是Page_Load事件, 当点击任意按钮后,每次点击都要先执行一遍Page_Load(在这里Page_Load里面的事件是给数据控件加载 ...
- ASP isPostBack
源地址:http://blog.163.com/budong_weimin_zh/blog/static/129198524201061995455589/ ASP.NET中IsPostBack详解 ...
- ASP.NET中IsPostBack属性研究
通过页面的IsPostback属性,可以检查 .aspx 页是否为传递回服务器的页面:当加载页面并对控件的更改属性处理之前,用户可以在page_Load事件中检查该页面是否被传递回的页面. 一般是在p ...
- IsPostBack
1.IsPostBack介绍Page.IsPostBack是一个标志:当前请求是否第一次打开. 调用方法为:Page.IsPostBack或者IsPostBack或者this.IsPostBack或者 ...
- IsPostBack and DropdownList.
Encounted the issue accident when helping my classmate dealing with his homework assignment,it turns ...
- Asp.net IsPostBack
Page.IsPostBack是一个标志:当前请求是否第一次打开.调用方法为:Page.IsPostBack或者IsPostBack或者this.IsPostBack或者this.Page.IsPos ...
- (转) IsPostBack的用法
某一天在网上看到有人写了这样一段代码: protected void Page_Load(object sender, EventArgs e) { if (!IsPostBa ...
随机推荐
- dedicated bearer
Session Initiation Protocol (SIP) Basic Call Flow ExamplesRFC3665 intuitive, done. PDF] TS 123 401 ...
- odoo 二次开发的一些原理
一:self是什么 目前新版的Odoo中使用到的self,是对 游标cr.用户ID.模型.上下文.记录集.缓存 的封装. 我们可以通过 self.XX 获取到这些封装的东西,比如:self.cr. ...
- git笔记记录
廖雪峰Git教程学习记录. 0.常用命令总结: pwd 命令用于显示当前目录 git init 命令把这个目录(自己建的文件夹)变成Git可以管理的仓库(必须切换到当前文件夹下面执行这个命令) ls ...
- C语言实现数组逆置
#include <stdio.h> #include <assert.h> void swap(int *a ,int *b) { int tmp = *a; *a = *b ...
- 数据库SQL(1)
EG1:db.LpOutputGroups.GroupBy(q => q.CalcGroupDesc).ToList().OrderByDescending(m => m.First(). ...
- Linux -定时任务调度
l crond 任务调度 crontab 进行定时任务的设置,. 概述 任务调度:是指系统在某个时间执行的特定的命令或程序. 任务调度分类:1.系统工作:有些重要的工作必须周而复始地执行.如病毒扫 ...
- Mac上实现对Python的版本切换
最近朋友邀请我帮忙写个比特币自动化交易程序,要求的平台是Okex,用Python写,之前到是自己学过一点自动化交易,不过是MT5的.看了一下Okex提供的API接口,和MT5不一样,它并没有现成的ID ...
- ionic3 pop到指定页面
this.navCtrl.getViews().forEach(element => { if(element.name == 'JiecheHomePage'){ this.navCtrl.p ...
- revit 学习园地
https://www.cnblogs.com/greatverve/category/286724.html
- MySQL子查询subquery
子查询(Subquery)是指出现在其他SQL语句内的SELECT子句. 例如: select * from t1 where col1=(select col2 from t2); 其中select ...