asp.net 中 !IsPostBack 和 AutoPostBack 属性有什么区别??

2024-12-25 15:14:30
推荐回答(2个)
回答1:

Page.IsPostback 返回一个bool值。
当网页首次加载的时候,返回false.
什么叫首次加载? 我们可以认为在浏览器地址栏写入 url,然后回车,网页显示,叫首次加载。
更直接的说,就是当向服务器发起get请求的时候,Page.IsPostback返回false;
当我们使用服务器控件和服务器交互的时候,会发生post提交, 即为非首次加载,返回true;.
所以我们可以 利用 !Page.IsPostback 为true时来判断网页首次加载。
AutoPostBack 是服务器控件设置是否自动提交的属性。 代表控件DropDownList, RadioButtonList,CheckboxList 等。
当AutoPostBack设置为true时候, 比如DropDownList 发生选择索引变化的时候,会使得网页自动提交。可以指定某一个变动事件来使窗体被提交。
当AutoPostBack 设置为false的时候,n变动事件会被捕捉,但是不会立即引发提交。取而代之的是,它们会被控件缓存起来直到下一次发生提交为止。然后当网页在服务器上再次被处理时,所有搁置的事件会被引发并处理。
在服务器网页的处理期间,所有的事件会优先处理,而不是依照特定的顺序处理。当所有变动事件都处理完毕之后,引发窗体被提交的鼠标按键事件才会被处理。

回答2:

if(!Page.IsPostBack)
{
//放在pageload函数中,只有当页面第一次加载时,这里的代码才会被执行。点按钮或其它控件的autopostback属性,不执行。
}

autopostback控件属性是是批“是否自动刷新界面”,设置成true后,控件点击或变化状态后整个会回复,并执行控件的双击后产生的事件。