jQuery jqGrid是否支持水平滚动条和冻结列?

时间:2011-02-13 15:26:04

标签: jquery jqgrid horizontal-scrolling

我有一个包含很多列的jqGrid,当列宽的总和大于固定宽度容器时,它会显示如下:

enter image description here

如果网格的宽度太大,则不要使用水平滚动条。

如何获得jQgrid的水平滚动条,以便有一个固定的最大网格大小,如果我添加更多列,它只会滚动?

另外,假设这是可能的,你可以冻结前几列吗?

3 个答案:

答案 0 :(得分:11)

您可能使用forceFit:true jqGrid选项。首先,您应该设置forceFit:false或使用shrinkToFit:false。之后,您可以使用jqGrid的width选项或使用setGridWidth方法设置网格宽度。您将拥有网格,其中列标题对应于列的width属性,网格将具有水平滚动条。

更新:尝试设置shrinkToFit:falsewidth: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添加一个属性,它可以正常工作。

祝你好运!