javascript - PageMethod 的 onSuccess 函数未达到

标签 javascript jquery asp.net

我正在开发一个 asp.net 网络表单应用程序。在客户端,我有一个 javascript for 循环,它在代码隐藏中调用 PageMethod。如果 PageMethod 成功执行,我必须执行其他 javascript 功能,例如更新标签的值。问题是当 for 循环运行并调用 PageMethod 时,它永远不会转到 onSuccess 方法。循环只是继续并结束。我想知道在循环继续下一次迭代之前,如何在每次 PageMethod 调用之后调用 onSuccess 方法。以下是我的代码片段。

for (var i = 0; i < data.length; i++) {
    var dataItem = datata[i];
    var name = dataItem.name;
    if (name !== null && name !== '') {
        PageMethods.ProcessName(name, onSuccess);
        function onSuccess(result) {
            if (result == "") {
                // code to populate a label with the value of name 
                // in each iteration
            }                       
        }
    }
}

最佳答案

您可以尝试在 ProcessName() 调用之前移动 onSuccess 函数。您甚至可以像这样将其移动到局部变量:

var onSuccess = function(result) {
    if (result == "") {
        //code to populate a label
    }                       
}
PageMethods.ProcessName(name, onSuccess);

或者您可以像这样将匿名函数直接传递给 PageMethods.ProcessName():

PageMethods.ProcessName(name, function(result) {
    if (result == "") {
        //code to populate a label
    }                       
});

关于javascript - PageMethod 的 onSuccess 函数未达到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51996499/

相关文章:

javascript - 动态更改 ASP.NET 页面上的值而不实际刷新它

javascript - 我在滥用我的 POST 请求吗?我一直收到 400/500(错误的请求)

javascript - Cordova 防止 webview 拖拽字段焦点?

php - 通过ajax返回javascript但它不起作用

jquery 使用数组序列化输入

javascript - 在 ASP.NET MVC 中使用 ModelBinding 时,我可以选择要将属性绑定(bind)到哪个元素吗?

javascript - 如何在成功时继续调用 Jquery

javascript - 添加混合 javascript 函数以使内容淡入列内的另一个内容/使它适用于两个单独的列

jquery - 删除/删除与类最接近的元素

javascript - 如何在javascript中获取具有两个具有相同id的文本框的asp.net用户控件的值