2

我正在使用最新的 jqgrid 捆绑包 4.4.5。我想使标题列自动换行。我阅读了 Oleg 的答案,但似乎它不适用于最新的 jqgrid。

firebug 中出现的错误消息是“$grid[0]._complete”是未定义的,当调整列大小时错误是“this.grid is undefined”。

有什么解决方案可以让它工作吗?

编辑:在我改变 $grid.jqGrid('setFrozenColumns'); 之后 到 $grid.triggerHandler("jqGridAfterGridComplete"); 现在,当我调整列大小时,冻结的 div 列也不会调整大小。

注意:我使用本地变量更改“this.grid”。var grid = this.grid || 这;

这是图片链接

4

1 回答 1

4

从 4.3.2 版开始,jqGrid 支持允许注册多个回调(事件处理程序)的事件删除了旧的内部回调。_complete

而不是演示中的行

$grid[0].p._complete.call($grid[0]);

你现在可以使用

$grid.triggerHandler("jqGridAfterGridComplete");

更新:当前版本的 jqGrid 有一个bug。它将被用来this代替ts

if($.isFunction(p.resizeStop)) { p.resizeStop.call(this,nw,idx); }

代替

if($.isFunction(p.resizeStop)) { p.resizeStop.call(ts,nw,idx); }

事件jqGridResizeStop没有问题。所以我建议改用它:

$grid.bind("jqGridResizeStop", function () {
    resizeColumnHeader.call(this);
    fixPositionsOfFrozenDivs.call(this);
    fixGboxHeight.call(this);
});

请参阅修改后的演示

更新 2:我发布了错误报告。我可以通知您,该修复程序已应用于 github 上的 jqGrid 主代码。

刚刚发布的 4.5.0 版包含该修复程序。

于 2013-05-13T07:57:43.670 回答