【问题标题】:How to change the Sorting order in SharePoint 2010 List view Web Part when Group by is applied?应用分组依据时如何更改 SharePoint 2010 列表视图 Web 部件中的排序顺序?
【发布时间】:2017-03-23 14:16:53
【问题描述】:
场景:
- 我在我的 SharePoint 2010 环境中创建了一个自定义列表。
- 在此列表中,有一个名为
Status 的选择列,其值为New、Open 和Closed。
- 在一个页面上,我设置了一个视图并使用此
Status 列应用了 Group By。
问题
- 我想更改此
Status 列的顺序,它应按以下排序顺序呈现:New、Open 和 Closed。
如果我使用升序,它将如上图所示显示,如果我使用降序,则它将显示为:Open, New & Closed。
谁能帮助我如何获得该列的请求排序?有没有其他方法可以满足我的要求?
提前致谢!
【问题讨论】:
标签:
sorting
sharepoint
sharepoint-2010
【解决方案1】:
我在谷歌上搜索并试图找到解决方案,但没有找到任何合适的解决方案。据我了解,OOTB 无法为用于分组的列应用自定义订单。您只能按升序或降序对它们进行排序。
但是无论如何,我找到了一个补丁,我能够使用 JQuery 满足要求。我在页面上应用了下面的 JQuery 代码,它就像一个魅力:
JQuery 代码
$("table[summary='GTSRequests']").each(function(){
var tbodyGroupCol = $(this).find("tbody[id*='GroupByCol']");
var grpNew = $(this).find("tbody[groupstring='%3B%23New%3B%23']");
var grpOpen = $(this).find("tbody[groupstring='%3B%23Open%3B%23']");
var grpClosed = $(this).find("tbody[groupstring='%3B%23Closed%3B%23']");
if(grpNew.length > 0){
var strGrpNewId = grpNew.attr("id").replace("titl", "tbod") + "_";
grpNew.insertAfter(tbodyGroupCol)
$("#" + strGrpNewId).insertAfter(grpNew);
}
if(grpOpen.length > 0){
var strGrpOpenId = grpOpen.attr("id").replace("titl", "tbod") + "_";
grpOpen.insertAfter("#" + strGrpNewId);
$("#" + strGrpOpenId).insertAfter(grpOpen);
}
if(grpClosed.length > 0){
var strGrpClosedId = grpClosed.attr("id").replace("titl", "tbod") + "_";
grpClosed.insertAfter("#" + strGrpOpenId);
$("#" + strGrpClosedId).insertAfter(grpClosed);
}
});
所以基本上使用此代码,我正在更改 HTML 代码的位置并根据我的需要放置它们。所以它看起来像自定义排序。
希望此代码对其他用户有所帮助。