Sharepoint多项创建问题

时间:2015-09-17 15:16:33

标签: javascript jquery html sharepoint

我几天来一直在敲打这个问题,而且似乎没有比以前更接近了。粗略地说,clientContext.executeQueryAsync似乎无法正常工作以在sharepoint中创建多个项目。这是基本设计。我在共享点站点中创建了一个连接到html页面的Web部件。该页面位于该网站的home.aspx上,该内容通过内容页面添加了以下内容:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" x-undefined="" />
<script type="text/javascript" src="/apps/dre/SiteAssets/Javascript/jquery-1.11.0.min.js"></script>
<script type="text/javascript" src="/apps/dre/SiteAssets/Javascript/BatchControl.js"></script>
<script type="text/javascript" src="/apps/dre/SiteAssets/Javascript/jquery.SPServices-2014.01.min.js"></script>
<script type="text/javascript" src="/apps/dre/SiteAssets/Javascript/PageLoader.js"></script>
<script type="text/javascript" src="/apps/dre/SiteAssets/Javascript/BatchExecution.js"></script>
<script type="text/javascript">ExecuteOrDelayUntilScriptLoaded(function(){loadmasterpage();}, "sp.js")</script>
<title>Home Page</title>
</head>
<body>
<div id="batch" style="visibility:hidden">
<button id="batchcontrol" onclick="ExecuteBatchControl()">Create DRE Records</button>
</div>
</body>
</html>

所以这是一个非常简单的HTML。 PageLoader库在加载SP.js后加载按钮。

function loadmasterpage()
{
$(document).ready(function() {
    //alert("Here");
     $('#batch').css('visibility','visible');
});
}

这是Home.aspx页面中的所有Web内容。它显示了一个简单的HTML按钮。现在出现了令人困惑的谜团。因此,如果单击按钮,BatchControl库将执行以下代码:

function ExecuteBatchControl()
{
createListItem();
}

function createListItem() {

    var clientContext = new SP.ClientContext.get_current();
    var oList = clientContext.get_web().get_lists().getByTitle('Discrepancy Report');

    for(x=0;x<4;x++){
    var itemCreateInfo = new SP.ListItemCreationInformation();
    this.oListItem = oList.addItem(itemCreateInfo);

    oListItem.set_item('Title', "B2Batch");   

    oListItem.update();

    clientContext.load(oListItem);
    }

    clientContext.executeQueryAsync(
        Function.createDelegate(this, this.onQuerySucceeded), 
        Function.createDelegate(this, this.onQueryFailed)
    );
}

function onQuerySucceeded() {
    //alert('Item created: ' + oListItem.get_id());
    alert('Success');
  //  $("input[Title='Caller ID']").val("");
}

function onQueryFailed(sender, args) {
    alert('Request failed. ' + args.get_message() + 
        '\n' + args.get_stackTrace());
}   

它创建记录,但onQuerySucceeded函数永远不会执行。如果你删除for ...循环,它将执行,它工作正常。为什么批处理编码不起作用。这几乎就像它存在稳定性问题,但我不能说。似乎没有人知道这里的答案。是因为我将我的html页面连接到Web内容Web部件吗?我完全迷失了,感到困惑。请我帮忙!!!!!!

0 个答案:

没有答案