2016-10-17 14 views
0

テーブル内の特定の列の幅(長い内容とヘッダーをラップする)を調整しようとしましたが、成功しませんでした。Datatables - `columnDefs`を使用して列の幅を変更する

ドキュメントhereに続いて、指定した列の幅をまだ調整できません。何か不足していますか?

私はid=onewidth=100%tableについては、以下のDataTableのパラメータがあります。私は、HTML内の任意のCSSオーバーライドを指定していないか、そうでない場合は、ので、多分これが問題になる

$(document).ready(function(){ 
    $('#one').DataTable({ 
     paging: true, 
     'scrollX': false, 
     'autoWidth': false, 
     'columnDefs' : [ 
      {'targets': [0,1], 'width': '50px'} 
     ], 
     "iDisplayLength": 50, 
     'lengthMenu': [[10, 20, 50, 100, -1], [10, 20, 50, 100, "All"]], 
     dom: 'Blfrtip', 
     buttons: ['copy', 'csv', 'excel'] 
    }); 
}); 

を?

+0

私はこのことについてはわかりませんが、Nickですが、私は 'autoWidth'パラメータを削除しようとします。これは、すべての列の幅を指定していないと問題になる可能性があります。私は一般に 'columnDefs'を使用しません(代わりに' columns'を使い、各列に必要なものを書き出します)。そして、DataTablesが自動的に幅を指定しない列のサイズを設定します。ですから、私は 'autoWidth'も使用しません。それは私のために働くものです。 – BobRodes

答えて

0

ありがとうございました。さらに掘り下げた後、私はテーブルが空腹のクラスで設定されていることに気付きました。とても腹立たしい。このクラスを削除すると、必要に応じてラップが機能します。ありがとうございました。

0

あなたはどのデータを列に入れていますか? widthプロパティはth要素にのみ適用されます。したがって、td列の要素に幅の広い要素がある場合、予想よりも幅が広がる可能性があります。たとえば、50ピクセルより広い画像では、列が50ピクセルより広くなります。

+0

すべてのデータは文字列です。 'th'と' td'アップデートの良い点。ですから、 'td'を更新する方法はありますか? – NickBraunagel

+0

@NickBraunagel私はしません。列の幅が必要なので、 'th'はよりきれいです。 DataTablesは、特に指定しない限り、常に文字列をワードラップします。おそらく、あなたの弦にスペースがなく、50pxに収まらないものよりも広いでしょうか?私は前にそれを試したことがないので、私はそれが何をするのか分からない。とにかく私のデータに合うものよりも列を狭くしたくないので、それを試してみませんか?なぜあなたもどちらかと思っているのですが... ...? – BobRodes

+0

@NickBraunagel AFAIKあなたは 'td'と' td'を区別するためにCSSを使う必要があります。つまり、テーブルレイアウトは固定または自動幅計算を使用するため、セルは実際には 'width'または' max-width'宣言に従わないでしょう(https://www.w3.org/TR/CSS2/tables。 html#width-layout)。あなたが探している幅の精度については、セルの 'display'値を' inline-block'か何かに変えてしまいます。 –

関連する問題