2016-11-08 8 views
1

私はTrirand JQGrid 4.6を使用してグループヘッダー行 JQGridを生成しました。グループヘッダー行モードでJQGridの各グループの下に子をソートするにはどうすればよいですか?

私はdemo websiteからコードを抽出している:

あなたは列がページロードの昇順にソートされた日付を見ることができるように。したがって、各グループのすべての子供たちは、日付の昇順でソートされます。しかし、どのようにして、この列をページのロード時に降順でソートするようにすれば、子供は日付の順番どおりにソートされますか?

  1. Invの列のソートをグリッドに止める方法を教えてください。

    enter image description here

    jQuery("#list483").jqGrid({ 
        data: mydata, 
        datatype: "local", 
        height: 'auto', 
        rowNum: 30, 
        rowList: [10,20,30], 
        colNames:['Inv No','Date', 'Client', 'Amount','Tax','Total','Notes'], 
        colModel:[ 
         {name:'id',index:'id', width:60, sorttype:"int"}, 
         {name:'invdate',index:'invdate', width:90, sorttype:"date", formatter:"date"}, 
         {name:'name',index:'name', width:100, editable:true}, 
         {name:'amount',index:'amount', width:80, align:"right",sorttype:"float", formatter:"number", editable:true}, 
         {name:'tax',index:'tax', width:80, align:"right",sorttype:"float", editable:true},  
         {name:'total',index:'total', width:80,align:"right",sorttype:"float"},  
         {name:'note',index:'note', width:150, sortable:false}  
        ], 
        pager: "#plist483", 
        viewrecords: true, 
        sortname: 'name', 
        grouping:true, 
        groupingView : { 
         groupField : ['name'], 
         groupColumnShow : [false], 
         groupText : ['<b>{0} - {1} Item(s)</b>'] 
        }, 
        caption: "Configure group header row" 
    }); 
    

    EXTENDED POST

は:

enter image description here

私はポストで会話を高めています。このシナリオを想定します。データはDBのストアドプロシージャから来て、stored procedureは特定の行の順番(データ参照)でデータを受け取り、グリッドのように正確にその順序を使用したいと考えています。

添付ファイルに示されているように、デモサイトで使用しているデータセットを単純化したと仮定します。付属のイメージでは、3つのカラムName, Date, Amountを使用しています。画像には4つのレコードがあり、NamesDatesの2つのグループがあります。グリッドの画像にも示されているように、レコードの正確な順序を使用する必要があると仮定します。別の言葉では、グリッド内のストアドプロシージャの行の順序も使用します。グリッドのデフォルトの並べ替えなどをオフにする必要があります。どのように私はこれを達成するのですか?

だから、最終的な結果は次のようにする必要があります:

 Test1 
      12/12/2012   12000 
      10/4/2012   2000 
Test2 
      1/1/2013   300000 
      7/24/2016   46000 

答えて

1

私はあなたのコードは、画像に対応していないと思います。おそらくsortname: "invdate"を使用します。

ソート順を変更するには、invdateを入力してください。オプションsortorder: "desc"を追加する必要があります。

グループ化されたデータ(nameを使用しているため)を変更する必要がある場合は、groupOrderプロパティをgroupingViewに追加します。たとえば、

groupingView: { 
    groupField: ["name"], 
    groupOrder: ["desc"], // "asc" is by default 
    groupColumnShow: [false], 
    groupText: ["<b>{0} - {1} Item(s)</b>"] 
} 
+0

返信ありがとうございます。投稿に記載されていることは、グループヘッダー名を並べ替えることがないように各グループの行を並べ替えることでした。では、どのようにして、各グループの行を日付列の昇順/降順で並べ替えるのですか? –

+0

@ANP:ようこそ!私は質問で答え始めました。あなたは 'sortorder:" desc "オプションをグリッドに追加するべきです。 'sortname:" invdate "、sortorder:" desc "'、 'groupingView:{groupField:[" name "]、...}'を使うと、グリッドはまず 'name'によってソートされ、それは第2のソート基準として 'desc'順序で' invdate'によってソートされます。 – Oleg

+0

もう一つの簡単な質問は、グリッドの負荷やページの読み込み時にグループヘッダーとグループヘッダーの並べ替えを停止する方法はありますか? DBからストアドプロシージャがあると仮定し、グリッドにあるように行の順序を使用する必要があります –

関連する問題