所以我从host-web检索了一堆列表,并将它们放入类似于概述here的listCollection中。
然后我尝试访问名为TestList
的特定列表。但是,我无法使用getByTitle("TestList")从listCollection访问它。它会给我一个列表,其中没有我检索的列表中的信息。
但是,如果我遍历枚举器,直到找到标题为TestList
的列表,我就可以使用它。
有谁知道为什么这不起作用?
var testList = listCollection.getByTitle("TestList");
console.log(testList);
但是这样做了?
var listEnumerator = listCollection.getEnumerator();
while (listEnumerator.moveNext()) {
oList = listEnumerator.get_current();
if (oList.get_title() == "TestList") {
console.log(oList);
}
}
这些console.log
产生相应的输出。看看顶部的Object
内部ClientObjectData
是如何形成的。这是为什么?我错过了什么?
由于
答案 0 :(得分:1)
使用getByTitle
中的sp.js
方法,你应该这样使用。
SP.ListCollection.getByTitle()
注意:这样您只能获得列表名称而不是对象数组。
从集合中返回具有指定标题的列表。
要在列表中获取项目,您应该使用此方法。
SP.List.getItems()
根据指定的查询
返回列表中的项集合
而不仅仅是:
var testList = listCollection.getByTitle("TestList");
尝试
var testList = listCollection.getByTitle("TestList");
listItemCollection = testList.getItems(""); // or use a CAMLQuery to be more specific
context.load(listItemCollection);
context.executeQueryAsync(onQuerySucceeded, onQueryFailed);
然后它应该被填充,看起来应该像第二个例子。