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

时间:2015-03-03 09:04:48

标签: jquery jqgrid

我喜欢jqGrid并享受它强大的API。 ColumnChooser插件似乎存在一系列我无法克服的问题。

在使用ColumnChooser时会发现以下问题:

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

    1. 如果要添加“string”类型的列(Vs整数,枚举数),网格将不允许您使用列右侧的X符号清除工具栏过滤器。您将收到错误:“( jquery.jqGrid.min.js:225 未捕获的TypeError:无法设置未定义的属性'selectedIndex'。

    2. 使用ColumnChooser后的网格行为不同步。意思是,我无法过滤使用ColumnChooser之前工作的枚举值,我开始在排序等方面遇到奇怪的错误。所有这些奇怪的问题都是在我使用ColumnChooser之后才开始的。

    3. 我尝试下载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);
      

      它解决了滚动的问题。

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

0 个答案:

没有答案