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

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

在此处输入图像描述

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

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

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

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

更新:尝试设置shrinkToFit:falsewidth:600 (例如)并查看结果。

仅设置shrinkToFit:false您可以看到网格将具有水平滚动条。 您甚至可以看到网格足够小,无需滚动即可显示。 这是我在这里发布的错误以及相应的错误修复。 该修复程序包含在GitHub上的代码中,但不包含在jqGrid 3.8.2中。 下一个jqGrid版本将有修复。 然而,出于您的目的,错误的宽度并不重要,因为您将/可以明确地设置网格的width

通过使用div包装网格和寻呼机并运行一个小脚本,您可以获得具有静态或自动大小字段的水平滚动条,
你可以看到jsfiddle-example ,或者只是这样:

 

并运行此脚本:

 $('#grid_container div:not(.ui-jqgrid-titlebar)').width("100%"); 

我的例子是使用来自trirand.com的脚本,但我在最新版本上尝试了它,它运行得很好。
希望我帮助过。

尝试使用流体jqGrid插件 。 也许它可以帮助您解决jqGrid宽度问题。

至于第二个问题,为了冻结前n列,我成功地使用这个超级插件来冻结第一列。 您只为colmodel添加一个属性,它可以正常工作。

祝好运!