按SharePoint列表中的ID获取多个列表项

问题描述 投票:0回答:2

我试图从SharePoint列表中检索列表项,但我的问题是我想通过ID检索最后四项,我不知道如何继续使用JSOM。有人可以帮我解决一些关于如何做到这一点的CAML代码吗?

var ctx = new SP.ClientContext.get_current();
var web = ctx.get_web();

//Geting reference to the list
var olist = web.get_lists().getByTitle('Configs');
var oitem = olist.getItemById(1);
//get Title,id,ConfigItem fields
ctx.load(oitem, "Title", "Id", "ConfigItem");
ctx.executeQueryAsync(function () {

    alert(oitem.get_item("Title"));
    alert(oitem.get_item("ConfigItem"));

}, function (a, b) {
    alert(b.get_message());
});
sharepoint-2013
2个回答
1
投票

对于此要求,您可以使用带有order by和$ top选项的rest api。

/_api/web/lists/getbytitle('chart')/items?$select=ID,Title&$orderby= ID desc&$top=4

休息api获取列表项。

$.ajax({
                url: _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/getbytitle('chart')/items?$select=ID,Title&$orderby= ID desc&$top=4",
                type: "GET",                
                headers:
                {
                    "Accept": "application/json;odata=verbose",
                    "Content-Type": "application/json;odata=verbose"                    
                },                
                success: function (data) {                    
                    for (var i = 0; i < data.d.results.length; i++) {
                        var item = data.d.results[i];
                        //to do
                    }                        
                },
                error: function (data) {
                    console.log(data.responseJSON.error);
                }
            });  

0
投票

这是使用CamlQuery的JSOM解决方案。

var ctx = new SP.ClientContext.get_current();
var web = ctx.get_web();

var query = new SP.CamlQuery()
query.set_viewXml("<View><Query><OrderBy><FieldRef Name='ID' Ascending='FALSE' /></OrderBy></Query><RowLimit>4</RowLimit></View>")

var list = web.get_lists().getByTitle('Configs');
var items = list.getItems(query, "ID", "Title", "FirstName", "LastName", "Level", "Grade", "Date");
var dictionary = [];

ctx.load(items);
ctx.executeQueryAsync(function () {
    var enumerator = items.getEnumerator();
    while (enumerator.moveNext()) {
        var item = enumerator.get_current();
        dictionary.push({
            title: item.get_item("Title"),
            firstName: item.get_item("FirstName"),
            lastName: item.get_item("LastName"),
            level: item.get_item("Level"),
            grade: item.get_item("Grade"),
            date: item.get_item("Date"),
        });
    }
}, function (a, b) {
    alert(b.get_message());
});
© www.soinside.com 2019 - 2024. All rights reserved.