10

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

在此处输入图像描述

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

如何获得 jQgrid 的水平滚动条,这样网格的最大大小是固定的,如果我添加更多列,它只会滚动?

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

4

3 回答 3

11

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

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

只有设置shrinkToFit:false好后才能看到网格会有水平滚动条。即使网格小到可以在不滚动的情况下显示,您也会看到它。这是我在此处发布的错误以及相应的错误修复。该修复包含在GitHub 上的代码中,但不包含在 jqGrid 3.8.2 中。下一个 jqGrid 版本将进行修复。尽管如此,出于您的目的,错误的宽度并不重要,因为您将/可以width明确设置网格。

于 2011-02-13T17:55:22.780 回答
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 的脚本,但我在他们的最新版本上进行了尝试,并且效果很好。
希望我有帮助。

于 2013-08-20T08:53:55.310 回答
1

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

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

祝你好运!

于 2011-02-14T21:26:03.310 回答