对于具有autoresizeOnLoad或autoresizable的太多列,Column Chooser不能很好地运行

时间:2015-09-22 21:17:05

标签: jqgrid free-jqgrid

在......发现演示。

我注意到了2个问题。

1)在“列选择器”对话框中,我无法将列名称栏拖放到其他框中。

2)单击VIN和Year列的“ - ”图标,然后单击“确定”按钮。列标题无法调整大小。那么,如果这就是问题,如何对列选择​​器执行autoresizeOnLoad为false。

1 个答案:

答案 0 :(得分:1)

您已使用done的{​​{1}}回调,并致电

columnChooser

显式在您的代码中。您需要做的是添加呼叫

this.jqGrid("remapColumns", perm, true);
在调用this.jqGrid("autoResizeAllColumns"); 后直接

remapColumns只需拨打autoresizeOnLoad:true,但在重新加载网格时执行 。您希望在使用autoResizeAllColumns之后进行自动调整。

另一种可能的实现方式是使用以下事件处理程序:

columnChooser

最后一个代码在每次调用$("#BatchReportJqgrid_Spreadsheet").bind("jqGridRemapColumns", function () { $(this).jqGrid("autoResizeAllColumns"); }); 方法后调用autoResizeAllColumns。因此,您可以从remapColumns的参数列表中删除不需要的done回调,并且不要明确调用columnChooser。方法remapColumns将调用该方法,但columnChooser事件的上述事件处理程序仍可在列重新映射结束时调整列的大小。

更新:下次发布JSFiddle演示会更好。可以对代码进行一些更改并重试更改。

在我看来,不需要进行上述任何更改,只需使用jqGrid的"jqGridRemapColumns"选项即可。它会阻止在隐藏jqGrid列时更改列的宽度。