如何使Jqgrid冻结列自动换行

时间:2013-05-13 06:55:18

标签: jquery jqgrid word-wrap

我正在使用最新的jqgrid包4.4.5。 我想使标题列自动换行。 我读过Oleg answer,但似乎没有使用最新的jqgrid。

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

有没有解决办法让它发挥作用?

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

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

这是图片link

1 个答案:

答案 0 :(得分:4)

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

而不是the demo

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

你现在可以使用

$grid.triggerHandler("jqGridAfterGridComplete");

更新:当前版本的jqGrid在the line中有一个错误。它将使用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);
});

请参阅the modified demo

更新2 :我发布了the bug report。我可以告诉你,the fix已经应用在github上jqGrid的主代码中了。

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