我喜欢jqGrid并享受它强大的API。 ColumnChooser插件似乎存在一系列我无法克服的问题。
在使用ColumnChooser时会发现以下问题:
使用ColumnChooser后会发现以下问题:
如果要添加“string”类型的列(Vs整数,枚举数),网格将不允许您使用列右侧的X符号清除工具栏过滤器。您将收到错误:“( jquery.jqGrid.min.js:225 未捕获的TypeError:无法设置未定义的属性'selectedIndex'。
使用ColumnChooser后的网格行为不同步。意思是,我无法过滤使用ColumnChooser之前工作的枚举值,我开始在排序等方面遇到奇怪的错误。所有这些奇怪的问题都是在我使用ColumnChooser之后才开始的。
我尝试下载4.7.0,4.7.1,玩多选插件的顺序,没有任何帮助。我正在使用的多选项位于“plugins”目录下。
在此欣赏任何建议,
谢谢你。
P.S。
我做了一个小调试,试图找出这个bug的根本原因。当我用空的覆盖done函数时,问题似乎得到了解决:
done: function(perm) {
}
但是,当我添加remapColumn函数时,问题又返回了。
done: function(perm) {
$('#jqGrid').jqGrid("remapColumns", perm, true);
}
那么可能是remapColumns函数是这个的根本原因吗?
关于右边的滚动条,我想我设法解决了它:
如果我在columnChooser函数中替换,则行:
listHeight = Math.max(multiselectData.selectedList.height(), multiselectData.availableList.height());
这些行:
var selectListHeight = Math.max(multiselectData.selectedContainer.height() - multiselectData.selectedActions.outerHeight() - 1, 1);
var availableListHeight = Math.max(multiselectData.availableContainer.height() - multiselectData.availableContainer.outerHeight() - 1, 1);
listHeight = Math.max(selectListHeight, availableListHeight);
它解决了滚动的问题。
然而,最大的问题似乎是列的重新排序,第一个症状是稍后删除过滤器。