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;">

但所有其他表格的宽度都不正确:例如。100像素;

<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 元素宽度的百分比(或者说流体布局),您可以使用offsetWidthjavascript 这样的方法获取包装 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 回答