2016-06-20 3 views
0

テーブルをタイムスタンプ降順でソートしたいが、このフィールドにはテストケースが昇順になっている。 私は私の問題を説明できることを願っています。タイムスタンプによるクロスフィルタ/ dc.tableソート

//------------------------table------------------------------------ 
    var TestCaseDim2 = perfData.dimension(function (d) { 
     return d.TestCase; 
    }); 

    dc.dataTable('#data-table') 
    .dimension(TestCaseDim2) 
     .group(function (d) { 
      return d.Timestamp.bold().fontcolor("darkblue"); 
     }) 
    .columns([ 

     function (d) { return d.SerialNumber;}, 
     function (d) { return d.Result;}, 
     ]) 
     .width(get2ndWindowSize()) 
     .order(d3.descending) 
     .size(700) 
     .renderlet(function (table) { 
     table.selectAll('.dc-table-group').classed('info', true); 
     }); 

誰かが私を助けてくれることを願っています。

+0

私を助けてくれますか? :/ @Ethan Jewett – Addy1992

+0

あなたはdc.jsメーリングリストで尋ねた/検索しましたか?私はこれについて議論があったと思います。私が気づいているグループと行を別々に並べ替えるのは簡単な方法ではありません。実際の例をまとめると、私は助けようとすることができます。このJSFiddleには、必要なライブラリが含まれています:https://jsfiddle.net/esjewett/jusjkm8j/ –

+0

https://jsfiddle.net/tetut91e/26/これは私のJSフィドルです...タイムスタンプのソートは正しいです(最新一番上にあります)、Testscriptは アルファベット順ではありません:/あなたが何を意味するのか知っていますか? .order(d3.descending)を使用している場合、テキストはアルファベット順(完璧)ですが、最も古いTimeStampが先頭にあります。 – Addy1992

答えて

1

JSFiddleの例では、あなたのグループ内でテストスクリプトがデータテーブルで使用したディメンションであるためテストケース順になっているかどうかはわかりません。

実際の問題は、dc.jsデータテーブルでグループの順序とグループ内の順序を個別に制御できないことです。グループ内の順序は、次元によって返された順序に基づいており、グループの順序はグループのテキストによって決まります。 dataTable.orderに設定した内容に応じて、どちらも昇順または降順のいずれかになります。

だから、私たちは何をしますか?私はあなたがグループ内でソートするプロパティにディメンションを定義するお勧めします、とディメンションで、トップ/ボトムの機能を反転させることで、ディメンションの並べ替えの方向を反転させる必要があれば、その後:ここ

var perfData = crossfilter(data); 
var testScriptDim = perfData.dimension(function (d) { 
    return d.testscript; 
}); 
testScriptDim.top = testScriptDim.bottom; 

dc.dataTable('#data-table') 
    .dimension(testScriptDim) 
    .group(function (d) { 
     return d.date.bold().fontcolor("darkblue"); 
    }) 
    .columns([ 
     function (d) { return d.testscript; }, 
     function (d) { return d.duration; }, 
     function (d) { return d.clickcount; } 
    ]) 
    .size(100) 
    .order(d3.descending) 
    .renderlet(function (table) { 
     table.selectAll('.dc-table-group').classed('info', true); 
    }); 

ですあなたが望むものと思うJSFiddleの最新バージョン:https://jsfiddle.net/esjewett/xzrp0ggv/1/

+0

それは動作します! Ethanさん、ありがとうございました!私は満足しています:) – Addy1992

関連する問題