if(!this.IsPostBack)
{
}
通常用在page_load中,获取一个值,该值指示该页是否正为响应客户端回发而加载,或者它是否正被首次加载和访问,如果是为响应客户端回发而加载该页,则为 true;否则为 false。
比如如果你在页面上按了一下按钮,那么在Page_load时,你就会看到isPostBack等于true;如果你的页面是第一次被打开,则返回false;
!this.IsPostBack就是一直取true,把这个页面里面的东西一直当成第一次打开
!IsPostBack==ture 当前页面是第一次加载
IsPostBack 由于用户交互(page.submit())提交页面而产生的加载,二次加载
isPostback属性获取一个值,该值指示该页是否正为响应客户端回发而加载,或者它是否正被首次加载和访问。如果是为响应客户端回发而加载该页,则为 true;否则为 false(第一次加载)。
所以if(!IsPostBack)的意思就是如果不是了响应客户端回发而加载该页的时候执行{}里的数据---即第一次加载。IsPostBack的意思就是第二次(IsPostBack本身有回传信息),!IsPostBack的意思就是不是第二次---即第一次。所以你的以上代码最好放在里面,这样在你使用分页的时候就知道为什么了,你可以为你这datagird加入分页,然后分别把代码放在{}里面和外面看看效果,只有为第一次加载时执行此代码。
举个例子,首先假设页面里没有IsPostback,页面里有些客户填写的文本框,当用户填写好了之后,点提交之前如果页面响应了其他的事件(比如CheckBox的CheckedChanged事件)那么那些文本框就会被清空,原因就说页面被从新初始化了。