Javascript SharePoint COM正在从同一页面上的站点和子站点检索列表数据
我试图从一个页面中的站点和几个级别的子站点访问列表数据。 我在网上搜索了一下,尝试应用在堆栈溢出上找到的一些解决方案,但没有效果。 这是我正在使用的简化代码Javascript SharePoint COM正在从同一页面上的站点和子站点检索列表数据,javascript,sharepoint,Javascript,Sharepoint,我试图从一个页面中的站点和几个级别的子站点访问列表数据。 我在网上搜索了一下,尝试应用在堆栈溢出上找到的一些解决方案,但没有效果。 这是我正在使用的简化代码 // parent-level var clientCtx = new SP.ClientContext.get_current(); getListItems(listName, camlView,fields, clientCtx); //sub-site level clientCtx = new SP.ClientConte
// 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;
}
...
函数getListItems(listName、queryString、字段、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.set_viewXml(queryString);
var listItems=list.getItems(查询);
var fieldList=fields.join(“,”);
clientCtx.load(列表项);
clientCtx.executeQueryAsync(函数(){
var resultItems=[];
var listItemEnumerator=listItems.getEnumerator();
while(listItemEnumerator.moveNext()){
var listItem=listItemEnumerator.get_current();
var fieldValues=listItem.get_fieldValues();
var resultItem={};
对于(变量i=0;i