客户端对象模型调用context.executeQueryAsync:将项添加到列表后,无法打开新项,直到onQuerySucceeded完成?

时间:2013-08-20 13:45:35

标签: javascript sharepoint-2010

我有客户端javascript代码,可以成功地将项目添加到列表中。我现在想要在创建它之后通过相同的脚本打开新项目,但是在我允许executeQueryAsync context.executeQueryAsync(onQuerySucceeded,onQueryFail)调用的onQuerySucceeded脚本之前,新项目不会打开;已被允许运行。

在onQuerySucceeded完成之前,新项目不会从SP列表或代码打开。项目似乎已锁定。在允许完成呼叫后不久,可以通过任何方法打开该项目。

我是否需要调用context.dispose()或者是否有其他方法来提交行并释放任何sp锁?

// 
newItem.update();

context.load(newItem);

context.executeQueryAsync(onQuerySucceeded , onQueryFail);

SP.UI.Notify.removeNotification(nid);
nid ='';

 function onQuerySucceeded (sender, args) {
    var lnewItem_ID = newItem.get_id();
    gNewItemId=lnewItem_ID;

    nid ='';

    if (gOpenNewItemDialog == "true" && gNewItemId != "" )
    {
        try
        {
         var linktopopup ="https://my.site.com/teams/abc/_layouts/listform.aspx?PageType=6&ListId={A88775A1-18F4-482C-A5AC-6F44C5B1CF03}&ID=" + gNewItemId;
                          // this call hangs.  Also, item shows in sp list but cant be opened.
            OpenPopup(linktopopup, "Edit new matter Task");

        }
        catch(err)
        {

            alert(' :( ');
        }
        gOpenNewItemDialog=false; //reset
    }           
}

function onQueryFail(sender, args) {
    alert('Failed to add new item. \nError: ' + args.get_message() + '\nStackTrace: ' + args.get_stackTrace());
}

1 个答案:

答案 0 :(得分:0)

更新:“编辑任务”对话框现在按预期打开项目。我不知道为什么。我可能更改了与更改分配的电子邮件通知相关的列表设置。

HTH

/ BAC