1

テーブルが初期化されたら、動的にフィルタリングする dataTable があります。フィルターとして使用される文字列である 1 つの引数を取る JS 関数があります。私はテーブルにフィルターを設定しています...

oTable = fnFilter(strFilter);

これは正常に機能しますが、テーブルがフィルター処理された後、列のサイズが変更されたように見えます。私はすでに bAutoWidth を false に設定しているので、列のサイズ変更を防ぐために他に何が適用できるかわかりません。th タグで定義したサイズは、どのようなデータが存在しても維持したいと考えています。

4

2 に答える 2

3

bAutoWidthdataTables が幅を自動的に計算するかどうかを示す単なるフラグです。false に設定することは最適化機能です。ドキュメントを参照してください:

列幅の自動計算を有効または無効にします。テーブルの幅が aoColumns を使用して渡される場合、これは最適化として無効にすることができます (幅の計算に時間がかかります)。

<td>ただし、ブラウザはコンテンツに応じて を拡大/縮小します。これがテーブルの仕組みです。あなたが望むものを達成するための秘訣は、次のように使用することsScrollXですaoColumns

var dataTable = $('#example').dataTable({
  sScrollX: "100%",
  aoColumns: [ 
    { "sWidth": "50px" },
    { "sWidth": "50px" },
    { "sWidth": "50px" },
    { "sWidth": "50px" },
    { "sWidth": "50px" }
  ]
});

これにより、コンテンツに関係なく、幅が 250px、各列が 50px のテーブルが得られます。sScrollXdataTable がテーブル列の両方の幅を維持するように強制します。

このフィドルを参照してください-> http://jsfiddle.net/MW8Ku/への呼び出しに上記のアプローチも機能していることを示していfnFilterます。

于 2013-10-31T14:22:26.997 に答える