如何从列表集合中获取列表? getByTitle返回空列表

时间:2015-02-03 19:40:34

标签: javascript list sharepoint sharepoint-2013 sharepoint-list

所以我从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是如何形成的。这是为什么?我错过了什么?

enter image description here

由于

1 个答案:

答案 0 :(得分:1)

使用getByTitle中的sp.js方法,你应该这样使用。

SP.ListCollection.getByTitle()

注意:这样您只能获得列表名称而不是对象数组。

  

从集合中返回具有指定标题的列表。

要在列表中获取项目,您应该使用此方法。

SP.List.getItems()
  

根据指定的查询

返回列表中的项集合

来自SP.Listgetitemns docs

而不仅仅是:

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);

然后它应该被填充,看起来应该像第二个例子。