我是否完全误解了ASP.Net AJAX(更新面板)?

Mr *_*ubs 5 asp.net ajax page-lifecycle

我可能误解了AJAX是如何工作的 - 有人可以对下面的简化场景有所了解:

我有一个asp.net Web应用程序.在页面上,更新面板中没有用户控件(没有更改属性)和脚本管理器.

在用户控件和表单上有一个标签,两者都DateTime.Now.ToString在load事件中设置其文本.还有一个按钮,用于在用户控件中返回帖子.

当我单击按钮时,我希望用户控件内的标签更新,页面上的一个标签现在就可以了.到现在为止还挺好.

但是...页面上的页面加载事件确实用isPostBack = True处理(我没想到),看起来加载事件中发生的任何事情都没有被推回到客户端(因为标签没有不要更新.

我没想到在更新AJAX面板时会引发和处理页面加载事件(在包含用户控件的页面中),这是正确的吗?或者我做错了什么?我记得读过一些关于Page.IsCallback的内容,但这是假的,所以也许这与此无关.

Ste*_*sen 5

嗯,这个问题不是关于 AJAX 本身,而是关于 Microsoft 的基于 AJAX 的 UpdatePanel,它是一个复杂的野兽。UpdatePanel 工作方式的简单解释是,一切都与正常的整页“回发”相同(ViewState POST 到服务器,重新创建服务器端 DOM,执行所有页面事件生命周期事件)除了在最后呈现给客户端的响应只包含刷新 UpdatePanel 内容所需的 HTML 子集,从该子集发起 AJAX 请求。还有一些额外的微妙之处和复杂性在起作用,但这是基本思想。