2017-03-20 3 views
0

シナリオ:私は私のSharePoint 2010の環境での1つのカスタムリストを作成しているSharePoint 2010のリストビューで並べ替え順序を変更する方法Group byを適用する場合のWebパーツ?

  • このリストには、Statusという名前の選択肢列があり、その値はNew,OpenおよびClosedです。
  • ページで私は1つのビューを設定し、このStatusカラムを使用してGroup Byを適用しました。

下の画像のように表示がレンダリングされる問題

enter image description here

  • 私はこのStatus列の順序を変更するとそれが必要この並べ替え順序で表示される:NewOpenおよびClosed

私は昇順を使用している場合は、上記の画像のようにそれが表示され、私は降順を使用する場合、それは次のように表示されます。OpenNew & Closed

この列の要求された並べ替えをどのように取得できますか?私の要件を満たすための代替手段はありますか?

ありがとうございます!

答えて

0

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コードの位置を変更し、あたりとしてそれらを入れています、このコードを使用して私の必要性。カスタム仕分けのように見えるようにします。

希望すると、このコードは他のユーザーに役立ちます。

関連する問題