Page.IsPostBack和Page.IsCallBack有什么区别?

44

我最近遇到了一些检查 Page.IsCallBack 的代码,但我不确定它与 Page.IsPostBack 有何区别。有人可以给我解释一下吗?

编辑:它们是互相排斥的吗?还是在特定情况下两者都可能发生?


鉴于迄今为止的答案,更好的问题可能是 IsCallback 和 IsAsync 之间的区别是什么? - Echilon
5个回答

46

Page.IsCallBack

该属性用于检查页面请求是否是回调的结果。它是一种特殊的回发,因此总是会发生一个回合;然而,与经典的回发不同,脚本回调不会重新绘制整个页面。在回调期间,ViewState 不会被更新,但在回发期间会更新。

Page.IsPostBack

检查页面是否是第一次访问服务器。与 IsCallBack 不同的是,ViewState 会被更新。

有关详细信息,请参阅页面生命周期,其中显示了事件序列的图表。

编辑 - 回答您的新问题

Page.IsPostback 属性将为两种请求类型返回 true。仅当请求是客户端回调时,Page.IsCallback 属性才返回 true。


我喜欢你的回答,但你能否重新表述一下第二句话,使其更加清晰明了?谢谢。 - Joe Phillips
2
链接已经失效。也许应该是 http://edndoc.esri.com/arcobjects/9.2/NET_Server_Doc/developer/ADF/ajax_callback.htm ? - Alex Angas

33

IsPostBack在页面通过表单方法提交时为true。

IsCallBack在页面被Ajax调用返回时为true。


6

回调函数是特殊的后台回发,因此总会发生往返; 然而,与经典的后台回发不同,脚本回调不会重新绘制整个页面。 在回调期间,ViewState 不会更新,它是用于后台回发的。

更多信息在这里


在回调函数中,您可以操纵响应以返回一个文件(如CSV)供用户下载吗? - dannyrosalex

6

当表单通过单击提交按钮或通过JavaScript(例如AutoPostback控件)返回到自身时,这就是所谓的“postback”。

当 AJAX 控件作为 AJAX 请求的一部分调用页面上的方法时,这就是所谓的“callback”。


2
你能举出一些会发出回调的相关控件的例子吗? - Joe Phillips

0

Page.IsPostBack检查页面是否第一次访问服务器。与IsCallBack不同,ViewState会被更新。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接