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 ... 
随机推荐
- mask layer的遮罩层
			1. layer层 mask 遮罩效果 //渐变层 CAGradientLayer *gradientLayer = [CAGradientLayer layer]; gradientLayer.fr ... 
- python高级——目录
			目 录 python高级(一)—— python数据模型(特殊方法) python高级(二)—— python内置序列类型 python高级(三)—— 字典和集合(泛映射类型) python高级(四 ... 
- linux 系统管理(三) 系统信息查看 inx
			inxi infomation x i (信息每个人都爱) Inxi 最初是为控制台和 IRC(网络中继聊天)开发的一个强大且优秀的命令行系统信息脚本.可以使用它获取用户的硬件和系统信息,它也用于调试 ... 
- 【Python】子域名查询脚本
			脚本学习,多写写就会啦,来一发个人编写的超级无敌low的子域名查询脚本 #coding:utf-8 import re import requests import urllib import url ... 
- EntityFramework  First,FirstOrDefault,Single,SingleOrDefault的区别
			操作符 如果源序列是空的 源序列只包含一个元素 源序列包含多个元素 First 抛异常 返回该元素 返回第一个元素 FirstOrDefault 返回default(TSource) 返回该元素 返回 ... 
- mysql数据类型 完整性约束 054
			创建用户和授权用户权限: # .创建用户: # 指定ip .109的fgf用户登录 '; # 指定ip .开头的fgf用户登录 '; # 指定任何ip的fgf用户登录 '; # .删除用户 drop ... 
- nginx常用配置2
			## 一.Nginx中虚拟主机配置 ### 1.基于域名的虚拟主机配置 1.修改宿主机的hosts文件(系统盘/windows/system32/driver/etc/HOSTS)  linux : ... 
- uvm_cmdline_processor
			无意中看到uvm_cmdline_processor,之前使用+UVM_TESTNAME也没深究,现在记录一下 内部调用脚本中的参数,通过使用uvm_cmdline_processor可以从脚本层级, ... 
- PC端政务云产品的一些的看法
			第一部分:网站整体问题 1. 在hover或click时,没有明确的色彩等样式变化,如腾讯采取的是背景和颜色同时变化,搜狐和知乎采取的是颜色字体颜色的改变,无论时哪种,我觉得都是必要的. 2. 与上一 ... 
- selenium+Python(处理html5的视频播放)
			Webdriver支持在指定的浏览器测试HTML5,另外可以用JavaScript来测试这些功能,这样就可以在任何浏览器上测试HTML5 多数浏览器使用控件来播放视频,但是不同浏览器需要使用不同的插件 ... 
