Member 13690884 Ответов: 3

Запрос REST для 2 списков


Всем Привет.
Я пытаюсь получить элементы из 2 списков ("Инструкции" и "тест") одновременно и поместить их в таблицу на странице.
Теперь у меня есть рабочее решение для одного списка - 'Инструкции' (см. пример ниже).
Я использую SharePoint 365.
Я не являюсь разработчиком. Поэтому, если вы можете, пожалуйста, ответьте кодом (а не просто говорите: "вам нужно сделать то-то и то-то".
Спасибо.

$(document).ready(function() {  
    loadMyItems();  
});  
  
function loadMyItems() {  
        var oDataUrl = "https://site.example/_api/Web/Lists/GetByTitle('Инструкции')/items?$select=Title,EncodedAbsUrl,Device,Related_x0020_application,Key_x0020_words&$filter=(ShowOnSearchPage eq 'Yes')&$top=5000";  
    $.ajax({  
        url: oDataUrl,  
        type: "GET",  
        dataType: "json",  
        headers: {  
            "accept": "application/json;odata=verbose"  
        },  
        success: mySuccHandler,  
        error: myErrHandler  
    });  
}  
  
function mySuccHandler(data) {  
    try {  
        var dataTableExample = $('#table_id').DataTable();  
        if (dataTableExample != 'undefined') {  
            dataTableExample.destroy();  
        }  
        dataTableExample = $('#table_id').DataTable({  
            scrollY: true,  
            "aaData": data.d.results,  
            "aoColumns": [{  
                "mData": "Title",
                         "render": function(data, type, row, meta){
            
             return data = '<a href="' + row['EncodedAbsUrl'] + '">' + data + '</a>';}

         },{  
                "mData": "Device",
"render": function( data, type, full, meta) {
if(!data){var returnText = "";}
else {var returnText = data.results;}
return returnText;	}			

         },{  
                "mData": "Related_x0020_application",
                         
         },{  
                "mData": "Key_x0020_words",
                         
           }
]  
        });  
    } catch (e) {  
        alert(e.message);  
    }  
}  
  
function myErrHandler(data, errCode, errMessage) {  
    alert("Error: " + errMessage);  
}  


Что я уже пробовал:

К сожалению, я не смог найти ответ в Google.

Rajnarrayan Bose

Почему бы вам не создать объект и не добавить 2 списка к этому объекту и не передать только этот единственный объект?.

Member 13690884

Здравствуй, Раджнарраян Бозе.
Как я уже сказал, Я не разработчик/программист. Я имею в виду совершенно не разработчика, даже не новичка. Everhyng что я могу сделать, так это внести некоторые незначительные изменения в полный код.
Итак, я не понимаю (не знаю, как понять) ваш предлог.
Если вы можете помочь, пожалуйста, представьте свое решение в моем коде.
Спасибо.

Rajnarrayan Bose

Я опубликовал код ниже , с вашего конца API сделайте необходимое , что я сделал , как только вы передадите это из вашего api, вы получите в javascript то, что вы написали правильно .

Только вам нужно изменить конечный код API, как я написал ниже

3 Ответов

Рейтинг:
2

Dhaval_Nayi

Попробуйте объединить ответ для обоих списков, после чего вы можете поместить их в таблицу на странице.

var response = response || [];
function loadMyItems() {  
        var oDataUrl = "https://site.example/_api/Web/Lists/GetByTitle('Инструкции')/items?$select=Title,EncodedAbsUrl,Device,Related_x0020_application,Key_x0020_words&$filter=(ShowOnSearchPage eq 'Yes')&$top=5000";  
    $.ajax({  
        url: oDataUrl,  
        type: "GET",  
        dataType: "json",  
        headers: {  
            "accept": "application/json;odata=verbose"  
        },  
        success: function (data) {
			if (data.d.results) {
				response = response.concat(data);
			}
			loadMyItems2();
		},  
        error: myErrHandler  
    });  
}
function loadMyItems2() {  
        var oDataUrl = "https://site.example/_api/Web/Lists/GetByTitle('test')/items?$select=Title,EncodedAbsUrl,Device,Related_x0020_application,Key_x0020_words&$filter=(ShowOnSearchPage eq 'Yes')&$top=5000";  
    $.ajax({  
        url: oDataUrl,  
        type: "GET",  
        dataType: "json",  
        headers: {  
            "accept": "application/json;odata=verbose"  
        },  
        success: function (data) {
			if (data.d.results) {
				response = response.concat(data);
			}
			mySuccHandler(response);
		},  
        error: myErrHandler
    });  
}
function mySuccHandler(data) {  
    try {  
        var dataTableExample = $('#table_id').DataTable();  
        if (dataTableExample != 'undefined') {  
            dataTableExample.destroy();  
        }  
        dataTableExample = $('#table_id').DataTable({  
            scrollY: true,  
            "aaData": data.d.results,  
            "aoColumns": [{  
                "mData": "Title",
                         "render": function(data, type, row, meta){
            
             return data = '<a href="' + row['EncodedAbsUrl'] + '">' + data + '</a>';}

         },{  
                "mData": "Device",
"render": function( data, type, full, meta) {
if(!data){var returnText = "";}
else {var returnText = data.results;}
return returnText;	}			

         },{  
                "mData": "Related_x0020_application",
                         
         },{  
                "mData": "Key_x0020_words",
                         
           }
]  
        });  
    } catch (e) {  
        alert(e.message);  
    }  
}  
  
function myErrHandler(data, errCode, errMessage) {  
    alert("Error: " + errMessage);  
}


Рейтинг:
0

Rajnarrayan Bose

public  class ObjectToPass{

 public IList<ChildClass1> Class1{ get; set; }
 public IList<ChildClass2> Class2{ get; set; }

}


Верните объект" ObjectToPass " таким образом, Вы тоже получите 2 списка.


Рейтинг:
0

Member 13690884

Решение было предоставлено здесь - javascript - SharePoint REST запрос для 2 списков - переполнение стека