2016-09-23 6 views
0

私は、レスポンシブ・エクステンションを持つDatatables 1.10を使用しています。 https://datatables.net/extensions/responsive/examples/child-rows/column-control.htmlDatatables 1.10レスポンシブ・サーチを展開して子ローを表示

一致する子ローが展開/表示されるように検索を設定するにはどうすればよいですか?

たとえば、このページで「5407」を検索すると、テーブルは親行を表示するようにフィルタリングされますが、一致するのは子行にのみあります。検索結果を展開して、一致する子行を表示するにはどうすればよいですか?

https://jsfiddle.net/lbriquet/Ldgutob0/

$(document).ready(function() { 
    $('#example').DataTable({ 
    responsive: { 
     details: { 
     type: 'column' 
     } 
    }, 
    columnDefs: [{ 
     className: 'control', 
     orderable: false, 
     targets: 0 
    }], 
    order: [1, 'asc'] 
    }); 
}); 

答えて

0

あなたは自動的にsearch.dtハンドラ内で検索した後、すべての子行を開くことができます。

$('#example').on('search.dt', function() { 
    table 
    .rows({ filter: "applied" }) 
    .every(function(rowIdx, tableLoop, rowLoop) { 
    $('td:first-child', this.node()).trigger('click.dtr'); 
    }) 
}) 

更新フィドル - >https://jsfiddle.net/Ldgutob0/2/フィルタ/検索がすべて処理されるたびにが表示されます。行は、その子ローを開きます。私はコードを調べて.dtrという接尾辞に気づいた。それはちょうどtrigger()に関与したくないカスタムクリックハンドラがあるかどうかを知るのに便利な "dataTables responsive"の略語だと思う名前空間です。

これはもちろん、フィルタリングされた値が実際に隠れているか見える列に存在するかどうかにかかわらず、子行を開きます。

+0

こんにちはDavid!ご協力いただきありがとうございます。私はクリックが各キーストロークでトリガーされていると思う。したがって、私が "5407"の例を取ると、 "5"が子行を開き、 "54"がそれらを閉じ、 "540"がそれらを開き、 "5407"がそれらを閉じます。検索フィルタが空ではなく(子行を展開する)、空白にリセットされると(子行を折りたたむ)クリックトリガが1回起動されるようにすることは可能ですか? – lbriquet

+0

もう一度@davidkonrad。私は少しの研究を行い、searchWaitを実装する方法を見つけました。これでclick.dtrは5秒後にのみ有効になります。ここで私の新しいフィドルです: https://jsfiddle.net/lbriquet/wjx9tLLL/ しかし、私は検索フィールドがクリアされたときにclick.dtrを再度調整する方法を見つけるのに苦労しています。私はこのようなものはうまくいくはずだと思っていますが、それを実装する方法を理解することはできません。 $( 'input [type = "search"]')val( '').keyup() – lbriquet

+0

@lbriquet、答えがあなたを助けてくれましたか? – davidkonrad

関連する問題