jqGrid ColumnChooser 是否有完整的工作示例?

IT技术 javascript jquery jquery-ui jquery-plugins jqgrid
2021-03-21 11:28:50

http://www.trirand.com/jqgridwiki/doku.php?id=wiki:jquery_ui_methods 上有构建 jqGrid 列选择器的说明('dlog_opts 是要传递给“dlog”的选项对象,或者(更多可能) 一个创建选项对象的函数。默认为 ui.dialog') 生成一个合适的选项对象,但不是完整的工作代码;没有提供所需功能的示例。

是否有一个完整的工作示例来构建一个允许隐藏、显示和移动列的 jqGrid 列选择器?

1个回答

看看老例如答案该示例主要是关于另一个主题,但在导航栏中,您可以看到“列选择器”按钮。单击按钮显示列选择器对话框。您可以从对话框中拖动任何列名称并将其放在另一个位置以更改列顺序。您可以单击“-”以隐藏该列并将任何列从隐藏列列表中拖放到可见列列表中。

要重现该行为,您首先应该确保在 jqGrid 下载期间选择了“jQuery UI 插件”( grid.jqueryui.js)。那么你应该遵循以下步骤:

  1. 包含ui.multiselect.css来自 jqGrid 4.0 源代码的 plugins 子目录。

  2. 包括 jQuery UI jquery-ui.min.js(不仅jquery-ui.css通常需要 jqGrid)

  3. 包括ui.multiselect.jsjquery-ui.min.js

  4. 添加调用列选择器的新按钮

代码可以如下所示

var grid = $('#list');
grid.jqGrid ('navButtonAdd', '#pager',
             { caption: "", buttonicon: "ui-icon-calculator",
               title: "Choose Columns",
               onClickButton: function() {
                    grid.jqGrid('columnChooser');
               }
             });

更新: 答案包含columnChooser基于我的建议的一些额外定制的描述

接受并点赞。(谢谢!)
2021-04-22 11:28:50
@FastTrack:好的,现在我明白你的意思了。解决方案非常简单。您可以使用$(this).jqGrid('columnChooser', {modal: true});. 因为modal现在没有记录该选项(请参阅此处),所以将问题作为单独的问题发布可能会更好,我会写给您答案。以我们与其他人分享解决方案的方式。我认为,这个问题对其他用户来说可能很有趣。
2021-04-30 11:28:50
@JonathanHayward:不客气!
2021-05-03 11:28:50
我不能感谢你!这为我节省了数小时无用的工作。
2021-05-04 11:28:50
@FastTrack:不客气!如果您现在使用 columnCooser “玩”另一个我的建议对您来说也很有趣。该建议尚未包含在 jqGrid 的主要代码中。
2021-05-16 11:28:50