首页 > 解决方案 > 不使用 CAML 查询从 SharePoint 列表中获取数据

问题描述

你能帮我写这个脚本吗?我正在尝试从列表 'faq' 中提取数据并获得输出警报,但不使用 CAML 查询。但我没有得到输出。请帮忙。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
 
<div id="divListItems"></div>

 
<script>
 
$(function () {
 
    ExecuteOrDelayUntilScriptLoaded(addListItems, "sp.js");
 
});
 
function addListItems() {
 
    var clientContext = new SP.ClientContext();
 
    var oList = clientContext.get_web().get_lists().getByTitle('faq');

    var itemCreateInfo = new SP.ListItemCreationInformation();
    this.oListItem = oList.getItem(itemCreateInfo);
    
   
  
    clientContext.load(oListItem);
 
    clientContext.executeQueryAsync(
 
    Function.createDelegate(this, this.onQuerySucceeded),
 
    Function.createDelegate(this, this.onQueryFailed)
 
    );
 
}
 
function onQuerySucceeded() {
 
    alert('Item created: ' + oListItem.get_item('Title'));
 
}
 
function onQueryFailed(sender, args) {
 
    alert('Request failed. ' + args.get_message() +
 
    '\n' + args.get_stackTrace());
 
}
 
</script>
如果需要更多详细信息,请告诉我。

标签: sharepoint

解决方案


使用 REST API 代码获取 SharePoint 列表项的最佳方法如下。

ExecuteOrDelayUntilScriptLoaded(initializePage, "sp.js");  
  
function initializePage() {  
    var siteURL;  
    var itemsArray = [];  
    // This code runs when the DOM is ready and creates a context object which is needed to use the SharePoint object model  
    $(document).ready(function() {  
        var scriptbase = _spPageContextInfo.webServerRelativeUrl + "/_layouts/15/";  
        GetSampleListItems();  
    });  
    //Retrieve list items from sharepoint using API  
    function GetSampleListItems() {  
        siteURL = _spPageContextInfo.siteAbsoluteUrl;  
        console.log("from top nav - " + siteURL);  
        var apiPath = siteURL + "/_api/lists/getbytitle(''samplelist'')/items";  
        $.ajax({  
            url: apiPath,  
            headers: {  
                Accept: "application/json;odata=verbose"  
            },  
            async: false,  
            success: function(data) {  
                var items; // Data will have user object  
                var results;  
                if (data != null) {  
                    items = data.d;  
                    if (items != null) {  
                        results = items.results  
                        for (var i = 0; i < results.length; i++) {  
                            itemsArray.push({  
                                "Title": results[i].Title  
                            });  
                        }  
                    }  
                }  
            },  
            eror: function(data) {  
                console.log("An error occurred. Please try again.");  
            }  
        });  
    }  
}  

如果没有 REST API,请找到以下代码。

var siteUrl = 'SiteCollection';//HEre you need to give your site collection URL

function retrieveAllListItems() {

    var clientContext = new SP.ClientContext(siteUrl);//Will return current context 
    var oWebsite = clientContext.get_web();//Curent site
    this.collList = oWebsite.get_lists();//Liist
 
    clientContext.load(collList);

    clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));
}
//

function onQuerySucceeded() {

    var listInfo = '';
//Below is the iteration for item 
    var listEnumerator = collList.getEnumerator();

    while (listEnumerator.moveNext()) {

       var oList = listEnumerator.get_current();
        listInfo += 'Title: ' + oList.get_title() + ' Created: ' + oList.get_created().toString() + '\n';
    }
    alert(listInfo);
}

function onQueryFailed(sender, args)
//this will fire when you will any failure in your code..means in your Success method..
}

有很多好的博客请找到下面的一个

http://msdn.microsoft.com/en-us/library/hh185009%28v=office.14%29.aspx

如果您正在寻找其他任何东西,请更新我。


推荐阅读