Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javascript中等待uu doPostBack方法完成?_Javascript_Asp.net Ajax - Fatal编程技术网

如何在javascript中等待uu doPostBack方法完成?

如何在javascript中等待uu doPostBack方法完成?,javascript,asp.net-ajax,Javascript,Asp.net Ajax,我正在使用_doPostBack方法刷新javascript中的UpdatePanel。我只想等待更新面板得到更新,然后执行后续的javascript代码。我如何等待异步方法完成,然后再继续执行(比如在我的例子中,异步方法是uu doPostBack)?我想用Thread.Join()方法模拟类似于C#中所做的事情。使用Sys.WebForms.PageRequestManager事件: 函数clearPostBack(){ $get(''事件目标')。值=$get(''事件参数')。值=''

我正在使用_doPostBack方法刷新javascript中的UpdatePanel。我只想等待更新面板得到更新,然后执行后续的javascript代码。我如何等待异步方法完成,然后再继续执行(比如在我的例子中,异步方法是uu doPostBack)?我想用Thread.Join()方法模拟类似于C#中所做的事情。

使用Sys.WebForms.PageRequestManager事件:


函数clearPostBack(){
$get(''事件目标')。值=$get(''事件参数')。值='';
Sys.WebForms.PageRequestManager.getInstance().remove_endRequest(clearPostBack);
//TODO:回邮后你想要什么
}
函数myPostBack(eventTargetUniqueId、eventArgument){
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(clearPostBack);
__doPostBack(eventTargetUniqueId、eventArgument);
}

这里有一个更好的方法,它允许您在请求成功和/或出错时执行某些操作:

$.ajax({
        type: "POST",
        data: 
        {
            '__EVENTTARGET': '<%=YourButtonName.ClientID %>'
        }
    }).done(function (data) {
        alert("ok");
    }).fail(function (p1, p2, p3) {
        alert("error");
    });
$.ajax({
类型:“POST”,
数据:
{
“\u事件目标”:”
}
}).完成(功能(数据){
警报(“正常”);
}).失败(功能(p1、p2、p3){
警报(“错误”);
});

@anu感谢您的回复,但您能给我举个例子吗?我会给你一个理想的答案。事实上,我之前没有注意到你正在使用asp.net(我对此一无所知)。那么,您的异步方法是否有任何回调函数。如果有,那么您可以将后续js代码放入该函数中,或者调用包含该回调函数的remining代码的其他函数谢谢谢谢谢谢谢谢谢谢!这让我非常头疼。谢谢你发布这个答案。我喜欢这种方式,但遗憾的是,这不是回帖。这是一个新的电话。因此,如果viewstate中有值,那么服务器端将无法使用这些值。
$.ajax({
        type: "POST",
        data: 
        {
            '__EVENTTARGET': '<%=YourButtonName.ClientID %>'
        }
    }).done(function (data) {
        alert("ok");
    }).fail(function (p1, p2, p3) {
        alert("error");
    });