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 ...
随机推荐
- Linux Python import jenkins 报错 oserror: /usr/lib/python2.7/site-packages/lookup3.so
安装了jenkins和Python-jenkins后,在脚本中import jenkins会报错:oserror: /usr/lib/python2.7/site-packages/lookup3.s ...
- 【算法笔记】B1033 旧键盘打字
1033 旧键盘打字 (20 分) 旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及坏掉的那些键,打出的结果文字会是怎样? 输入格式: 输入在 2 行 ...
- BZOJ - 3295 三维偏序 空间转换
题意:动态逆序对,共m次删除操作,求每次操作前的逆序对个数 删除操作转换为添加操作,首先对时间a进行简单排序 然后用cdq分治处理b维,树状数组处理c维 此时需要求的是对于某有序组\((a,b,c)\ ...
- DedeCMS实现自定义表单提交后发送指定QQ邮箱的方法
如月cruyue在做DedeCMS自定义表单发送邮箱的教程,发现大部分都是在php文件里写死固定字段内容,这样虽然也能实现自定义表单提交后发送指定邮箱,但是很不智能,如月cruyue想要一个我们自定义 ...
- SQL语句模糊查询年月
<if test="uploadTime != null" > <![CDATA[ and date_format(w.upload_time, '%Y%m') ...
- (转)MySQL5.6主从复制技术
原文:http://www.cnblogs.com/ilifeilong/category/1014799.html MySQL5.6复制技术(4)-MySQL主从复制过滤参数 摘要: 复制的过滤主要 ...
- (转)python time模块和datetime模块详解
python time模块和datetime模块详解 原文:http://www.cnblogs.com/tkqasn/p/6001134.html 一.time模块 time模块中时间表现的格式主要 ...
- springboot整合jsp踩坑
springboot以其高效的开发效率越来越多的用在中小项目的开发,并且在分布式开发中的使用也很广泛,springboot官方推荐的前端框架却是thymeleaf,并且默认不支持jsp,而大部分jav ...
- orcale 之 SQL 数据查询
从数据库中检索行,并允许从一个或多个表中选择一个或多个行或列.虽然 SELECT 语句的完整语法较复杂,但是其主要的子句可归纳如下: SELECT select_list [ INTO new_tab ...
- jquery jgrid filterToolBar beforeSearch 修改postData
beforeSearch: function() { var posted_data = $("#mygrid").jqGrid('getGridParam,'postData') ...