Я пытаюсь получить элементы из определенного представления списка Sharepoint в SPFX с помощью библиотеки @ pnp / sp, но я не могу этого сделать. Я могу получить свойства представления и поля списка. Я не нашел ничего как такового, чтобы получить элементы этого представления. Как я смогу добиться того же, и мой список также содержит столбцы подстановки.
Как получить элементы из определенных представлений списка Sharepoint в SPFX?
Ответы (1)
Нет прямой функции, которая поддерживала бы получение элементов из определенного представления. Вместо этого необходимо получить запрос CAML из ListView, а затем получить элементы на основе запроса CAML, вот фрагмент кода для справки:
import { sp } from "@pnp/sp";
import "@pnp/sp/webs";
import "@pnp/sp/lists";
import "@pnp/sp/views";
import "@pnp/sp/items";
import { SPHttpClient, SPHttpClientConfiguration, SPHttpClientResponse,
ISPHttpClientConfiguration } from '@microsoft/sp-http';
public getListViewData():void{
let listName = "JqueryList"; //The display name of the sharepoint list.
let viewName = "All Items"; //The View Name
HelloWorldWebPart.getViewQueryForList(listName,viewName).then((res:any) => {
HelloWorldWebPart.getItemsByViewQuery(listName,res).then((items:any[])=>{
items.forEach((item:any) => {
console.log(item);
});
})
}).catch(console.error);
}
//First method that retrieves the View Query
public static getViewQueryForList(listName:string,viewName:string):Promise<any> {
let listViewData = "";
if(listName && viewName){
return sp.web.lists.getByTitle(listName).views.getByTitle(viewName).select("ViewQuery").get().then(v => {
return v.ViewQuery;
});
} else {
console.log('Data insufficient!');
listViewData = "Error";
}
}
//Second method that retrieves the View data based on the View Query and List name
public static getItemsByViewQuery(listName:string, query:string):Promise<any> {
const xml = '<View><Query>' + query + '</Query></View>';
return sp.web.lists.getByTitle(listName).getItemsByCAMLQuery({'ViewXml':xml}).then((res:SPHttpClientResponse) => {
return res;
})
}
Вот похожая ветка для вашей справки:
Как получить элементы списка sharepoint по представлениям в spfx ?
person
Jerry
schedule
08.06.2020