2016-11-02 8 views
0

私はDatatablesというプラグインによって管理されるテーブルを持っています。いくつかの行は同一であり、1つを除いてそれを隠して、数字を見つける列(D)の合計を作成します。もっと理解するために私の写真を見てください。datatablesプラグインで同様のデータを非表示にする方法

+2

一般的に、この問題の解決策を試したことがあり、その試みが何であるかを知りたい人がいます。あなたが問題を解決しようと努力するつもりなら、多くの人が気にしません。 – rob

答えて

1

これはdjangoプロジェクトのようです。私はプレゼンテーションとロジックを混在させていると思います。これはほとんどのジャンゴリズムに反するものです。 これはPythonでこれを行い、このクライアント側でdatatables APIを扱うのではなく、DOMセットに一意のセットを渡すのが簡単です。しかし、あなたが本当にjqueryをスローグしたい場合、それは可能ですが、おそらく非常にきれいではありません。

おそらく、列の初期化でいくつかの魔法を使うことができます。それはあまりにも多くのなら、あなたはここでの問題は、これが唯一の「引き分け」に呼ばれている、あなたがページングをやっているならば、それはかもしれないテーブルをループそれが描かれています可能性があり、その後、行

$('#table2excel').on('draw.dt', function(){ 
    $(this).find('tr').each(function(e) { 
    //do row comparison 
    } 
}) 

を削除奇妙なページ番号(10のうち2つを取ると、おそらくちょうどあなたに8が表示されます)ので、ページングは​​変です。

実際に試したことの証拠は表示されていないので、私は本当にあなたに与えることができますが、始めるには十分なはずです。

+0

私はページングを使用していません - ページング:偽、私は試してみましたが、私はちょうどjs/jqueryを2週間前に発見して4日前にdatatablesと私はそれを学ぶのを終えていません。これはSymfonyプロジェクトです。 – toto

1

DataTablesでグループ化することで実現できます。
DataTableでは実際には公式のグループ化機能はありませんが、drawCallbackを使用して独自のグループ化機能を作成することは可能です。

row grouping - DataTablesからこの例を見てみましょう:

var table = $('#table2excel').DataTable({ 
    paging:false, 
    dom: 'Bfrtip', 
    buttons: [ 
     'copyHtml5', 
     'excelHtml5', 
     'csvHtml5', 
     'pdfHtml5' 
    ], 
    "drawCallback": function (settings) { 
     var api = this.api(); 
     var rows = api.rows({page:'current'}).nodes(); 
     var last=null; 

     api.column(2, {page:'current'}).data().each(function (group, i) { 
      if (last !== group) { 
       $(rows).eq(i).before(
        '<tr class="group"><td colspan="5">'+group+'</td></tr>' 
       ); 

       last = group; 
      } 
     }); 
    } 
}); 

drawCallbackは、すべての時間のDataTableと呼ばれる機能が引き分けを行っています。
あなた自身のカスタム関数を作成して、すべての行を繰り返し処理し、それらの同じ値を探し、一致するものがある場合は、両方の行を削除して+を削除し、それらの行を追加します。

+0

あまりにも遅れて申し訳ありません。ありがとう、あなたのソリューションをありがとう私はグループ化を使用したくない、私は以前に加えて私はグループ化が正しくないと述べた重複した行を非表示にしたい。ここをクリックしてください:http://img15.hostingpics.net/pics/504869tabE.png – toto

+0

解決策を理解できませんでした。独自のカスタム関数が必要です!ロジックを描画コールバック関数に入れてください。 –

関連する問題