应用分组依据时如何更改 SharePoint 2010 列表视图 Web 部件中的排序顺序?
How to change the Sorting order in SharePoint 2010 List view Web Part when Group by is applied?
场景:
- 我已经在我的 SharePoint 2010 环境中创建了一个自定义列表。
- 在此列表中,有一个名为
Status
的选择列,其值为 New
、Open
和 Closed
。
- 在一个页面上,我设置了一个视图并使用此
Status
列应用了 Group By
。
问题
- 视图正在渲染,如下图所示:
- 我想更改此
Status
列的顺序,它应该按以下排序顺序呈现:New
、Open
和 Closed
。
如果我使用升序,它将显示如上图所示,如果我使用降序,它将显示为:Open
、New
& Closed
。
任何人都可以帮助我如何获得此列的请求排序?有没有其他方法可以满足我的要求?
提前致谢!
我在 google 上搜索并试图找到解决方案,但没有找到任何合适的解决方案。据我了解,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 代码的位置并根据需要放置它们。所以它看起来像自定义排序。
希望此代码对其他用户有所帮助。
场景:
- 我已经在我的 SharePoint 2010 环境中创建了一个自定义列表。
- 在此列表中,有一个名为
Status
的选择列,其值为New
、Open
和Closed
。 - 在一个页面上,我设置了一个视图并使用此
Status
列应用了Group By
。
问题
- 视图正在渲染,如下图所示:
- 我想更改此
Status
列的顺序,它应该按以下排序顺序呈现:New
、Open
和Closed
。
如果我使用升序,它将显示如上图所示,如果我使用降序,它将显示为:Open
、New
& Closed
。
任何人都可以帮助我如何获得此列的请求排序?有没有其他方法可以满足我的要求?
提前致谢!
我在 google 上搜索并试图找到解决方案,但没有找到任何合适的解决方案。据我了解,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 代码的位置并根据需要放置它们。所以它看起来像自定义排序。
希望此代码对其他用户有所帮助。