如果控件位于更新面板内,页面加载事件是否仍会触发?

时间:2009-08-08 17:00:36

标签: asp.net listview asp.net-ajax updatepanel

我有一个页面,其中包含更新面板中listview控件的一部分。当在列表视图中单击按钮时,我修改了一些数据并调用this.databind来刷新数据。即使控件位于更新面板内,看起来页面加载事件仍在触发。我想知道为什么页面加载事件被触发?是因为在listview_onitemcommand事件上调用this.databind吗?

2 个答案:

答案 0 :(得分:5)

UpdatePanel在服务器上调用整个请求生命周期。这与您在普通同步页面中单击按钮完全相同。 OnInit,OnLoad,Click_Handler和Render都执行。整个页面呈现为HTML,并通过UpdatePanel的AJAX调用发送回浏览器。唯一的区别是,当UpdatePanel收到结果(页面的整个HTML输出,就像正常一样)时,它只切出与自身相关的部分,并用该HTML替换DOM,并将其余部分抛弃。 (它还会更新/替换ViewState)

答案 1 :(得分:-2)

如果您希望摆脱UpdatePanel,我建议您阅读this article

我认为摆脱UpdatePanel是我做过的最精彩的Ajax决定。