嗯……“普通的 AJAX”?Microsoft AJAX 是“普通 AJAX”。更新面板执行异步回发,这与使用 WebMethod 非常不同 - 这可能是您想要的。您仍然可以使用 Microsoft AJAX 调用 WebMethod。事实上,Microsoft AJAX 控件工具包有一个扩展器,可让您插入 WebMethod 调用。它被称为DynamicPopulateExtender。
DynamicPopulate 是一个简单的扩展器,它用 Web 服务或页面方法调用的结果替换控件的内容。该方法调用返回一个 HTML 字符串,该字符串作为目标元素的子元素插入。
<ajaxToolkit:DynamicPopulateExtender ID="dp" runat="server"
TargetControlID="Panel1"
ClearContentsDuringUpdate="true"
PopulateTriggerControlID="Label1"
ServiceMethod="GetHtml"
UpdatingCssClass="dynamicPopulate_Updating" />
要使其在“页面加载”上运行,只需在 ScriptManager 标记之后添加此脚本:
<script type="text/javascript">
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_pageLoaded(PageLoadedHandler);
function PageLoadedHandler(sender, args) {
var behavior = $find('dp'); // or whatever you named it
if (behavior) {
behavior.populate(''); // or pass in whatever key you want
}
}
</script>