如何使用JSOM从SharePoint列表中获取数据?

时间:2016-05-03 17:19:02

标签: javascript sharepoint sharepoint-2010 sharepoint-jsom

通常我们从SharePoint服务器对象模型获取数据。但我需要使用JSOM从SharePoint List收集数据。

我的要求如下:

有一个名为List1的列表,其中包含3列ID,标题,状态

我需要获取Status为1且Title =“My given title”

的所有数据

请使用JSOM提供解决方案。

1 个答案:

答案 0 :(得分:1)

文档here很好地解释了JavaScript对象模型。

基本上,您需要创建一个ClientContext对象并使用它来指定要执行的指令。您将使用ClientContext.load()指定要使用检索到的信息填充哪些对象,然后使用ClientContext.executeQueryAsync()执行任何排队的指令。在您提供给executeQueryAsync的回调函数的上下文中,您可以访问查询结果。

以下示例演示了典型方法。

<script>
ExecuteOrDelayUntilScriptLoaded(getListItems,"sp.js");
function getListItems(){
    var clientContext = new SP.ClientContext();
    var list = clientContext.get_web().get_lists().getByTitle("List1");
    var camlQuery = new SP.CamlQuery();
    camlQuery.set_viewXml( /* build a CAML query to retrieve your items */
        "<View><Query>" +
        "<Where>" + 
            "<And>" +
                "<Eq><FieldRef Name=\"Status\"/><Value Type=\"Text\">1</Value></Eq>" +
                "<Eq><FieldRef Name=\"Title\"/><Value Type=\"Text\">My given title</Value></Eq>" + 
            "</And>"+
        "</Where>" +
        "</Query></View>");
    var items = list.getItems(camlQuery);
    clientContext.load(items);
    clientContext.executeQueryAsync(function(){
        var itemArray = [];
        var itemEnumerator = items.getEnumerator();
        while(itemEnumerator.moveNext()){ 
            /* loop through all your results */
            var item = itemEnumerator.get_current();
            var id = item.get_item("ID");
            var title = item.get_item("Title");
            itemArray.push(id + ": " + title);
        }
        alert("ID: Title\n"+itemArray.join("\n"));
    },function(sender,args){alert(args.get_message());});
}
</script>
相关问题