5

jQuery dataTables プラグインを使用して、アプリケーションの高度なテーブルを作成しています。要件の 1 つは、「折りたたみ可能な」行 ​​(グループではありません!) を持つことです。たとえば、行はキャンペーンを表し、子キャンペーンを持つ場合があります。子行の構造は (基本的に) 親テーブルと同じです - 同じセル、同じデータ型です。

ただし、子行は親テーブル自体に影響を与えるべきではありません。つまり、ページあたりの行数は同じままにする必要があり、子行は親行とは別に並べ替えてはならず、常にバインドされたままにする必要があります。したがって、そのためにfnAddData() API func を使用することはできません。

もう 1 つのトリッキーな要件は、複数レベルの折りたたみ可能な行を持つ可能性です (例: 子キャンペーンの子キャンペーンなど)。

そのためにfnOpen() API 関数を使用していました。これにより、任意の行を「開く」ことができ、それに子ブロックを追加できます。通常、必要なものをそこに挿入できます。dataTables 1.8.2 で問題なく動作していました。次のようなコードを使用して子行を生成しました。

$(childRowData).each(function(){
    row = $(oTable.fnOpen(row.get(0), $(this), "child_row"));
    $(row).addClass('child_row');
});

一般に、現在の行 (上記で定義) を「開き」、子行にデータを挿入し、サイクルで子行を「開き」、それに子を追加するなどです。

しかし、dataTables 1.9.0 の時点では、親行を「開く」ことだけが許可されており、一度しか実行できないようです。

もちろん、サブテーブルを作成し、それに $.dataTable()を適用して子行に挿入することもできますが、特に 3 ~ 4 レベルの深さがある場合は、やや不十分で高価なソリューションのように思えます。

dataTables に折りたたみ可能な行を実装する他の方法はありますか?

4

2 に答える 2

0

サブ子を持つ子行を作成するときは、おそらく独自のソリューションを展開するのが最善です..数週間前にデータテーブルでこれに似たようなことをしていましたが、それが私が思いついた最高のものでした.

于 2012-09-11T02:53:42.050 に答える