Jqgrid – window.bind事件不允许在IE8中调整列大小

对于IE8中的Jqgrid,当我将resize事件绑定到窗口时,列resize不起作用。 当我单击要resize的列时,它会显示resize符号但不执行任何操作。 我目前正在使用jqgrid 4.4.1版本,当我使用4.1.2获得相同代码时,我没有遇到此问题。 我必须使用4.4.1版本来创建子网格,将支持分组在一起,所以现在无法恢复到4.1.2版本。 有没有办法解决这个问题? 任何帮助是极大的赞赏。 提前致谢..

我也没有在FF / chrome中看到这个问题,但只在IE8中看到。

基本上下面的代码片段导致了这个问题,如果我注释掉这个代码列resize可以解决任何问题,但是当浏览器resize时我无法调整网格宽度:(

$(window).bind('resize', function() { grid.setGridWidth($(window).width() - 20); }).trigger('resize'); 

以下是重现此问题的完整代码..

    Window Resize Event - Grid Not Resizeable           //    

您描述的问题的原因是Internet Explorer的兼容模式。 顺便说一句,我过去常常使用XHTML 1.0而不是HTML5来轻松关闭IE的兼容模式。 插入线

  

将解决resize的问题。 将原始演示与固定 演示进行比较。

我建议你另外修复你发布的演示中的一些其他小问题(可能与我用作原型的原始演示中存在相同的问题)。 例如,应该修复多选的URL,依此类推。 您可以在此处找到该演示的修改版本。

更新 :你是正确的IE8(不是我之前测试过的IE9)在将添加到后仍然存在问题(另一个问题)。 首先,您描述的问题已在jqGrid 4.4.3中修复(请参阅演示 )。 要解决jqGrid 4.4.1中的问题,您必须修改代码以resize以适应以下内容

 $(window).bind("resize", function () { var oldWidth = grid.jqGrid("getGridParam", "width"), newWidth = $(window).width() - 20; if (oldWidth !== newWidth) { grid.jqGrid("setGridWidth", newWidth); } }).trigger("resize"); 

请参阅相应的演示 。