SharePoint COM从同一页面上的站点和子站点检索列表数据

时间:2014-10-22 14:37:32

标签: javascript sharepoint

我正在尝试从一个页面中的站点和几个级别的子站点访问列表数据。 我在网上搜索过并试图在Stack Overflow上找到几个解决方案,但无济于事。 这是我正在使用的简化代码。

// parent-level 
var clientCtx = new SP.ClientContext.get_current(); 

getListItems(listName, camlView,fields, clientCtx);

//sub-site level
clientCtx = new SP.ClientContext(subSiteUrl);
getListItems((listName, camlView,fields, clientCtx);

此代码适用于父网站,但不适用于子网站。 在子站点的getListItems函数内部传递的客户端上下文包含正确的URL,并且似乎实例化所有对象:web,list,listItems等,但无法使用"未知错误"枚举列表项。对于我尝试过的两个子站点都会发生同样的事情。

function getListItems(listName, queryString, fields, clientCtx)
{
web = clientCtx.get_web();
var list = web.get_lists().getByTitle(listName);       
var query = new SP.CamlQuery();
query.set_viewXml(queryString);
var listItems = list.getItems(query);

query.set_viewXml(queryString);
var listItems = list.getItems(query);
var fieldList = fields.join(",");

clientCtx.load(listItems); 

clientCtx.executeQueryAsync(function () {
var resultItems = [];
var listItemEnumerator = listItems.getEnumerator();
while (listItemEnumerator.moveNext()) {
     var listItem = listItemEnumerator.get_current();                          

     var fieldValues = listItem.get_fieldValues();
     var resultItem = {};                           
     for (var i = 0; i < fields.length; i++) {
          resultItem[fields[i]] = listItem.get_item(fields[i]);
     }
     resultItems.push(resultItem);
}
return resultItems;
}
...

}

0 个答案:

没有答案