【发布时间】:2011-04-19 15:51:20
【问题描述】:
在单击事件中,我调用了一个 PageMethods 请求,该请求包含两个回调函数:OnServerValidationSuccess 和 OnServerValidationFailure。我也尝试设置创建一个名为clientResult的对象;
var clientResult = { rc: "", msg: "" };
$('#btnSave').click( function () {
PageMethods.ServerValidateCreateCompany(companyName, domainName, country, OnServerValidationSuccess, OnServerValidationFailure);
alert(clientResult.rc); //this is null!
});
在 OnServerValidationSuccess 中,结果参数包含异步响应。在那里我尝试将其分配给clientResult。
//On Success callback
function OnServerValidationSuccess(result, userContext, methodName) {
clientResult = result;
if (clientResult.msg.length != 0) {
document.getElementById('resMsg').innerHTML = clientResult.msg;
$('#resMsg').addClass('warning');
}
}
我将result 分配给回调函数中的本地clientResult 变量。它应该包含完整的服务器响应,由服务器端 WebMethod 正确发送。
但是,在调用 PageMethod 后它仍然为 null 或空。
我必须做什么才能将回调中设置的变量分配给局部变量以便我可以访问它?
【问题讨论】:
-
您的 PageMethod 是什么样的?没有看到就很难说。
-
在旁注中,我主张在 PageMethod 上使用 HttpHandler。与使用 Page 相比,开销会少很多。
标签: javascript callback scope pagemethods