c#中page.IsPostBack作用是?

来源:百度知道 编辑:UC知道 时间:2024/05/16 02:14:18
protected void Page_PreInit(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
ShuJu();
}
}
MSDN中说:获取一个值,该值指示该页是否正为响应客户端回发而加载,或者它是否正被首次加载和访问。

用通俗的语言说一下!Page.IsPostBack的作用是什么?

你第一次打开一个aspx页面,就是首次加载,然后你点击了页面中的某个按钮,或者其他控件,这个动作如果引起了页面的刷新,就是PostBack了,IsPostBack是个逻辑值,用于判断该次页面的刷新(加载)是客户端首次加载页面,还是客户端做出了什么请求的动作,为了响应此动作而再次加载页面。
一般都在页面首次加载时完成一些控件的初始化,数据的绑定之类的,这些事情不放在那个If里面的话,你会发现很多莫名其妙的错误。

判断页面是否是第一次加载
例如 有一个下拉框,你在load事件中 为他绑定三个值 A B C,但是页面每刷新一次都会走pageload事件,也就是说刷新一次 就给下拉框增加三个值。
但是需求中只需给下拉框增加一次就够了 ,所以做判断当页面第一次加载时才会给下拉框增加三个值,除此之外再刷新 就不会做相应操作。
这时就用到了 isPostBack

用通俗的话说就是:

一个页面第一次显示的时候
IsPostBack=false

然后你在这个页面上点击按钮或其它东西提交的时候,
IsPostBack=true

这是一个bool值,如果页面不是为回发而加载的情况下它的值是false的,也就是所谓的首次加载,而回发是什么呢,就是当你在控件中设定了事件的时候,系统自动捕捉事件,而产生的与服务器联络,这就是所谓的回发,也就是将页面信息发送到服务器.我们能都在page_load事件中设定下(!IsPostBack)因为第一次它的值是false的,而在前边加个!号,是为了大家的正常逻辑思维,因为一般我们写程序的时候都是让它在为真的时候做出某种动作.