我有一个包含很多列的jqGrid,当列宽的总和大于固定宽度容器时,它会显示如下:
如果网格的宽度太大,则不要使用水平滚动条。
如何获得jQgrid的水平滚动条,以便有一个固定的最大网格大小,如果我添加更多列,它只会滚动?
另外,假设这是可能的,你可以冻结前几列吗?
答案 0 :(得分:11)
您可能使用forceFit:true
jqGrid选项。首先,您应该设置forceFit:false
或使用shrinkToFit:false
。之后,您可以使用jqGrid的width
选项或使用setGridWidth方法设置网格宽度。您将拥有网格,其中列标题对应于列的width
属性,网格将具有水平滚动条。
更新:尝试设置shrinkToFit:false
和width:600
(例如)并查看结果。
仅设置shrinkToFit:false
后,您可以看到网格将具有水平滚动条。您甚至可以看到网格足够小,无需滚动即可显示。这是我发布here以及相应错误修复的错误。该修复程序包含在GitHub的代码中,但未包含在jqGrid 3.8.2中。下一个jqGrid版本将有修复。然而,出于您的目的,错误的宽度并不重要,因为您将/可以明确地设置网格的width
。
答案 1 :(得分:2)
通过使用div包装网格和寻呼机并运行一个小脚本,您可以获得具有静态或自动大小字段的水平滚动条,
你可以看到jsfiddle-example,或者只是这样:
<div id="grid_container">
<table id="list"></table>
<div id="pager"></div>
</div>
并运行此脚本:
$('#grid_container div:not(.ui-jqgrid-titlebar)').width("100%");
我的例子是使用来自trirand.com的脚本,但是我在最新版本上尝试了它,它运行得很好 希望我能帮到你。
答案 2 :(得分:1)
尝试使用fluid jqGrid plugin。也许它可以帮助您解决jqGrid宽度问题。
关于第二个问题,为了冻结第一个 n 列,我成功地使用此super plugin来冻结第一列。您只为colmodel添加一个属性,它可以正常工作。
祝你好运!