Jquery jqGrid-使用4.7.1 columnchooser后网格行为出现故障

Jquery jqGrid-使用4.7.1 columnchooser后网格行为出现故障,jquery,jqgrid,Jquery,Jqgrid,我喜欢jqGrid,喜欢它强大的API。ColumnChooser插件似乎有一系列我无法克服的问题 使用ColumnChooser时发现以下问题: 右侧的滚动显示在整个窗口中,而不是与列表大小相关,因此如果您有50种类型的列,则无法清楚地看到滚动 使用ColumnChooser后发现以下问题: 如果要添加类型为“string”(Vs integer,number of enum)的列,网格将不允许您使用列右侧的X符号清除工具栏过滤器。您将得到一个错误:(jquery.jqGrid.min.js:

我喜欢jqGrid,喜欢它强大的API。ColumnChooser插件似乎有一系列我无法克服的问题

使用ColumnChooser时发现以下问题:

  • 右侧的滚动显示在整个窗口中,而不是与列表大小相关,因此如果您有50种类型的列,则无法清楚地看到滚动
  • 使用ColumnChooser后发现以下问题:

  • 如果要添加类型为“string”(Vs integer,number of enum)的列,网格将不允许您使用列右侧的X符号清除工具栏过滤器。您将得到一个错误:(jquery.jqGrid.min.js:225uncaughttypeerror:无法设置未定义的属性'selectedIndex'

  • 使用ColumnChooser后的网格行为不同步。这意味着,我无法再筛选使用ColumnChooser之前工作的枚举值,我开始在排序等方面出现奇怪的错误。所有这些奇怪的问题都是在我使用ColumnChooser之后才开始出现的

  • 我试着下载4.7.0,4.7.1,按照multiselect插件的顺序玩,没有任何帮助。我使用的multiselect在“plugins”目录下

    谢谢你的建议

    谢谢你

    p、 美国

    我做了一个小的调试,试图找出这个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);
    
    它解决了滚动的问题


    然而,最大的问题似乎是列的重新排序,第一个症状是以后删除过滤器。

    请提供jsfiddle请永远不要使用
    jquery.jqGrid.min.js
    是您报告了一个错误。使用
    jquery.jqGrid.src.js
    代替使用的jqGrid版本的确切数量(如4.7.0而不是“我试着下载了4.7.0,4.7.1”)。真实需要重现所描述问题的演示。您使用的是哪个版本的jQuery和jQuery UI?我建议尝试固定版本的
    UI.multiselect.js
    (参见)(参见)?谢谢,我用演示更新了JSFIDLE这里是如何重新创建问题:1)-单击按钮左侧的列以打开columchooser。您会注意到滚动条被隐藏。现在,为了查看尝试删除筛选器时出现的问题,请按名称“Description”添加列“。一旦进入网格,请尝试单击X符号以清洁过滤器。一旦你这样做了,你会在调试器中看到错误。我使用了版本4.7.1。放置jqGrid src时,错误为(jquery.jqGrid.src.js:5794未捕获类型错误:无法设置未定义的属性“selectedIndex”)