JqGridの列幅をautoに設定するにはどうすればよいですか。
...
colModel: [
{ name: 'MyDescription', index: 'description', align: 'left', width: 150, sortable: false },
...
上記のステートメントでは、列の最大コンテンツのサイズに合うように列の自動幅を指定する方法を教えてください。
JqGridでautowidth列を指定する方法はありません。ただし、グリッドのshrinkToFitオプションをtrueに設定して、おおよその幅の値(20、20、20、80など)を設定すると、列の幅がグリッドの幅にスケーリングされます。
shrinkToFit:
このオプションは、グリッドの幅に対する各列の初期幅の計算タイプを示します。値がtrueで、幅オプションの値が設定されている場合:すべての列幅は、定義されたオプション幅に従ってスケーリングされます。例:幅が80ピクセルと120ピクセルの2つの列を定義し、グリッドに300ピクセルを設定したい場合、列は次のように再計算されます:1-列= 300(新しい幅)/ 200(すべての幅の合計) )* 80(列幅)= 120および2列= 300/200 * 120 =180。グリッド幅は300pxです。値がfalseで、幅オプションの値が設定されている場合:グリッドの幅は、オプションで設定された幅です。列幅は再計算されず、colModelで定義された値になります。
メソッドsetGridWidth
を使用できます。
例:
$(window).on('resize', function() {
$("#jqgrid").setGridWidth($(window).width());
}).trigger('resize');
これは主に私のために働いています。
<div id="myjqgridwrapper" style="width:100%;">
<table id="myjqgrid"></table>
<div id="myjqgridfooter"></div>
</div>
<script type="text/javascript">
//script to autosize grid
//don't forget autowidth:true for initial size
$(window).bind('resize', function(){
//set to 0 so grid does not continually grow
$('#myjqgrid').setGridWidth(0);
//resize to our container's width
$('#myjqgrid').setGridWidth($('#myjqgridwrapper').width());
}).trigger('resize');
</script>
Try this. Worked For Me
.ui-common-table{
width: 100% !important;
}
.ui-jqgrid .ui-jqgrid-hbox{
padding-right: 0px !important;
}
tableToGrid を使用してみることもできますが、幅が維持されることを覚えています。もしそうなら、その振る舞いがあなたのニーズに完全に適合しないなら、あなたはそのソースコードを調べることもできます。