4

jqGrid バージョン 4.4.1 を使用しています。ページに x 個のグリッドを作成する必要があります。最初のグリッドは可視ブロックで出力されますが、その他は次の形式で出力されます

<div style='display:none'>
//My jqGrid output
</div>

表示されている div に出力された最初のテーブルの幅は次のとおりです。

<div class="ui-jqgrid ui-widget ui-widget-content ui-corner-all" id="gbox_table0" dir="ltr" style="width: 920px;">

ただし、他のすべてのテーブルの幅は正しくありません。100px;

<div class="ui-jqgrid ui-widget ui-widget-content ui-corner-all" id="gbox_table1" dir="ltr" style="width: 100px;">

表示されている div 内のすべてのテーブルをレンダリングしようとすると、すべての幅が正しく計算されます。

4

2 に答える 2

2

はい、その通りです。の場合disply:none、グリッド幅は正しく計算されません。これを回避するには、グリッドの表示を担当するイベントを特定する必要があります。その場合、グリッドを表示した後、setGridWidth関数を使用してグリッドの幅を適切に設定する必要があります。

個々の列幅を使用していないため、グリッドをdivでラップし(IDがcontainer_gridであるとしましょう)、グリッドを表示するときは、その幅を折り返しdivの幅に設定することをお勧めします。

div要素の幅にパーセンテージを使用している場合(または流動的なレイアウトなど)、offsetWidthこのようなjavascriptのメソッドを使用してラッピングdivの幅を取得できます。

if($('#container_grid').attr("id")!==undefined)        
            grid.setGridWidth($("#container_grid")[0].offsetWidth);
于 2013-03-18T15:28:21.560 に答える
0

簡単な解決策は、初期化時にグリッドに固定幅を使用することです。

それ以外の :

    autowidth       : true,

使用する:

    width           :  1030,

このように、グリッド表示をなしに設定しても、目的の幅が維持されます。

于 2013-05-03T08:19:06.077 に答える