冻结 JQGrid 中的 rownum 列

Freeze rownum column in JQGrid

我有一个使用 JQGrid table 的网络应用程序,我想 freeze rownum 列就像任何其他列一样,但我不能,因为无法访问 rownum colModel 和设置行数的 freeze: true属性 是不可能的。

这是我的 JSFiddle 工作示例,它是正确的,只是它冻结了 rownum 和 Inv No 列,而我只想冻结第一列。要检查列冻结:只需调整 JSFiddle window 的大小,使 table 获得水平滚动条并重新加载 fiddle.

有人知道如何实现吗?每个有用的答案(尤其是 JSFiddle)都受到高度赞赏和评估。

谢谢。

我觉得你的建议很有趣。 jqGrid 不允许冻结 "rn"(在使用 rownumbers: true 选项的情况下创建)或 "cb"(在使用 multiselect: true 选项的情况下创建)列.正如您可能知道的那样,自上个 4 个月以来,我以免费 jqGrid 的名义开发了我的 jqGrid 分支(有关更多详细信息,请参阅自述文件和 wiki)。所以我只是在我的fork中对setFrozenColumns的代码进行了相应的更改。

The demo 演示该功能。默认情况下,"rn""cb" 列有 frozen: true。所以只需要调用 setFrozenColumns 方法使那里冻结:

如果不是所有行都具有相同的高度,则冻结列的另一个问题是各个行的位置和高度。例如,内联编辑可以增加行的高度。我也解决了这个问题。

The next demo 将冻结列与 formatter: "action" 和 "rownumber" 列("rn" 列)一起使用。可以看到冻结行的高度会在行内编辑开始或结束时自动调整:

所以你只需要从 GitHub 下载最新的免费 jqGrid 代码就可以解决你的问题。