Как я могу получить элементы списка по имени представления, используя REST API ajax? - PullRequest
0 голосов
/ 21 ноября 2019

Я попытался получить список элементов из библиотеки Sharepoint по имени представления. У меня был URL API AJAX отдыха:

url: webapp + "_api/web/list/getbytitle" + "('" + LibraryName + "')/View/getbytitle" +"('" + viewName + "')"
method:"GET"
header:"Accept":"application/json;odata=verbose

Как я могу получить все элементы в имени представления?

1 Ответ

0 голосов
/ 21 ноября 2019

Пожалуйста, обратитесь к следующему фрагменту кода, чтобы получить элементы из определенного представления. API Rest, а не конечная точка элементов поставщика, возвращаются из представления напрямую. Поэтому, пожалуйста, сделайте следующее:

  1. выполните первый запрос для получения CAML Query for List View, используя свойство SP.View.viewQuery
  2. , выполните второй запрос для получения элементов спискауказав CAML Query:

        getListItemsForView(_spPageContextInfo.webAbsoluteUrl,'MyList12','View1')
        .done(function(data)
        {
             var items = data.d.results;
             for(var i = 0; i < items.length;i++) {
                 console.log(items[i].Title);
             }    
        })
        .fail(
        function(error){
            console.log(JSON.stringify(error));
        });
    
    
    
     function getListItemsForView(webUrl,listTitle,viewTitle)
        {
             var viewQueryUrl = webUrl + "/_api/web/lists/getByTitle('" + listTitle + "')/Views/getbytitle('" + viewTitle + "')/ViewQuery";
             return getJson(viewQueryUrl).then(
                 function(data){         
                     var viewQuery = data.d.ViewQuery;
                     return getListItems(webUrl,listTitle,viewQuery); 
                 });
        }
    
        function getJson(url) 
        {
            return $.ajax({       
               url: url,   
               type: "GET",  
               contentType: "application/json;odata=verbose",
               headers: { 
                  "Accept": "application/json;odata=verbose"
               }
            });
        }
    
    
    
     function getListItems(webUrl,listTitle, queryText) 
        {
            var viewXml = '<View><Query>' + queryText + '</Query></View>';
            var url = webUrl + "/_api/web/lists/getbytitle('" + listTitle + "')/getitems"; 
            var queryPayload = {  
                       'query' : {
                              '__metadata': { 'type': 'SP.CamlQuery' }, 
                              'ViewXml' : viewXml  
                       }
            };
    
            return $.ajax({
                   url: url,
                   method: "POST",
                   data: JSON.stringify(queryPayload),
                   headers: {
                      "X-RequestDigest": $("#__REQUESTDIGEST").val(),
                      "Accept": "application/json; odata=verbose",
                      "content-type": "application/json; odata=verbose"
                   }
             });
        }
    

Здесь был дан ответ на тот же вопрос:

Использование REST для получения элементов представления SharePoint

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...