我已经在Sharepoint 2010上创建了一个博客,并希望通过REST查询列表以进行报告。我想通过默认字段Category(内部名称PostCategory)对列表进行排序。不幸的是,这是一个多选字段,因此简单的“?$ orderby = Category”不起作用。我也尝试扩展类别,但这也不起作用。
有机会我可以用休息点单吗?那么一个选定的类别又如何呢?可以按第一个类别排序,然后按第二个类别排序吗?
如果无法使用REST,那么如何在JSON中排序?我使用一个小型javascript,将列表以报告格式显示。我可以在JSON结果中订购吗?
这是一个例子:
// Create REST-API URL
var strURL = "<REST-URL>";
// Get information from REST-API and create html output
$.getJSON(strURL, function(data) {
<Create output>
};
// Append to webpart
$('#<WebPartTitle>').append($(html));
编辑:我也在这里发布了问题,因为它发生在所有共享点中
Category
字段(PostCategory
内部名称)是多选字段,在SharePoint REST中,不支持将$orderby
查询选项应用于此类型的字段。
但是您可以使用JavaScript对返回的项目进行排序。
下面的示例演示如何Posts
按Category
字段排序。
这里有一个重要的注意事项:
由于类别字段是多选字段值,因此假设每个帖子只能指定一个类别。
为此,
FirstCategoryTitle
引入了属性,该属性表示发布项目中第一类别的标题。此属性用于>排序项目
例子
var endpointUrl = 'http://contoso.intranet.com/blog/_vti_bin/listdata.svc/Posts?$expand=Category';
$.getJSON(endpointUrl, function(data) {
var items = data.d.results.map(function(item){
item.FirstCategoryTitle = (item.Category.results.length > 0 ? item.Category.results[0].Title : ''); //get first category
return item;
});
items.sort(postComparer); //sort by category
items.forEach(function(item){
console.log(item.Title);
});
});
function postComparer(x,y) {
return x.FirstCategoryTitle > y.FirstCategoryTitle;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句