0

IE では td 要素の nowrap が機能しないようです。この質問を参照してください。これを達成するためにフィールド フォーマッターを定義することなく、Dojox Datagrid 内のすべてのセルに nowrap を使用して span 要素を追加する方法を切実に求めています。

ここでjsfiddleを参照してくださいhttp://jsfiddle.net/HkxHZ/4/

この css を使用すると、Chrome と FF で必要なものが得られます。つまり、ワード ラップやオーバーフローが隠されません。でもIEでは動かない…

<style type="text/css">

.dojoxGridRowTable {
    table-layout: fixed;
    width: 0px;}

.dojoxGrid .dojoxGridCell {
    text-align: left;
    overflow:hidden;
    white-space:nowrap;}

</style>​
4

1 に答える 1

1

このメソッドは、DataGrid の各列の幅を、折り返しなしでデータを表示するのに十分な大きさにするという点で、自動サイズ設定に似ています。

すべきことは、列の説明のテキストの PX サイズとその列のデータに基づいて、グリッド レイアウトの各列の適切な幅を計算することです。これは、グリッド レイアウトを作成する前に行う必要があります。

適切な幅をpx単位で取得する方法は次のとおりです。次の html をページに追加します: css:

   #test
   {
   position: absolute;
   visibility: hidden;
   height: auto;
   width: auto;
   }

   <div id="test"></div>

1) DataGrid で使用されているフォント サイズを取得する

2) div オブジェクトを取得し、フォント サイズをグリッドで使用されるサイズに設定します。

   <div id="test"></div>

 var tst_item = window.document.getElementById("test");
 tst_item.style.fontSize = grid_fnt_sz;

3) DataGrid 用の各列の説明とデータ項目を非表示の div に配置します。

 tst_item.innerHTML = "Your data";
 var widthPX = (tst_item.clientWidth + 1); //Width of text in PX

この widthPX を各列の配列に格納し、列で見つかった最大値のみを保持します。

4) グリッドのレイアウトを作成するときは、列の説明とその列のデータから、列の幅を最大幅に設定します。

この方法により、各列の幅が、折り返しなしでデータを表示するのに十分な大きさになります。必要に応じて、ロジックを微調整して必要なことを行うことができます。これは、大量のデータでは実行できない場合があります。しかし、それは私にとってはうまくいきます。

于 2012-12-12T21:20:54.250 に答える