博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jquery-easyui中datagrid扩展,隐藏显示表头功能
阅读量:5732 次
发布时间:2019-06-18

本文共 3974 字,大约阅读时间需要 13 分钟。

今天,后台中需要新增一个功能,用户可以自由选择显示的列,之后保存到本地localStroage中。所以扩展了easyui中datagrid的onHeaderContextMenu方法。

使用方法:

_this.$table.datagrid(_.extend({                    fit: true,                    border: false,                    striped: true,                    method: "get",                    pagination: true,                    singleSelect: true,                    loadMsg: "加载数据中...",                    columns: _this.getTableColumns(),                    onResize: function () {                        if (_this.$ajaxDialog) {                            _this.$ajaxDialog.dialog("restore");                            _this.$ajaxDialog.dialog("maximize");                        }                    },                    onSelect: function (rowIndex, rowData) {                        _this.currentRow = rowData;                        _this.currentRowIndex = rowIndex;                        _this.toolbarViewModel.disabled(false);                    },                    onLoadError: function () {                        // $.messager.alert("提示", "服务器忙,请稍后再试!", "warning");                    },                    onHeaderContextMenu: function (e, field) {                        $.fn.easyuiExtension.showHideColumns(_this.$table, {                            left: e.clientX,                            top: e.clientY                        });                        e.preventDefault();                    },                    onRowContextMenu: function (e, rowIndex, rowData) {                        e.preventDefault();                        $(this).datagrid("unselectAll");                        $(this).datagrid("selectRow", rowIndex);                        if (_this.$menu) {                            _this.$menu.menu("show", {                                left: e.pageX,                                top: e.pageY                            });                        }                    }                }, options));
$.fn.easyuiExtension = {                showHideColumns: function ($table, position) {                    var $menus = $(document.createElement("div"));                     var canClick = true, nonHiddenCount = 0;                     var columnsFields = $table.datagrid("getColumnFields"),                         columns = [],                         columsDetail;                     for (var i in columnsFields) {
                        columsDetail = $table.datagrid("getColumnOption", columnsFields[i]);                         columns.push(columsDetail);                     }                                         if (columns.length) {
                        $menus.menu({
                            hideOnUnhover: false,                             duration: 200,                             onHide: function () {
                                setTimeout(function () {
                                    $menus.menu("destroy");                                 }, 200);                             },                             onClick: function (item) {
                                if (canClick || !item.iconCls) {
                                    $table.datagrid((item.iconCls ? "hideColumn" : "showColumn"), item.id);                                 }                             }                         });                         for (var i in columns) {
                            var item = columns[i];                             !item.hidden && nonHiddenCount++;                             $menus.menu("appendItem", {
                                text: item.title,                                 id: item.field,                                 iconCls: item.hidden ? "" : "icon-ok"                             });                         }                         canClick = nonHiddenCount > 1;                         $menus.menu("show", position); } } };

效果如下:

 

转载于:https://www.cnblogs.com/nicktyui/p/4138027.html

你可能感兴趣的文章
Linux下磁盘保留空间的调整,解决df看到的空间和实际磁盘大小不一致的问题
查看>>
RSA 生成公钥、私钥对
查看>>
C# ASP.NET 权限设计 完全支持多数据库多语言包的通用权限管理系统组件源码
查看>>
测试工具综合
查看>>
asp.net中调用COM组件发布IIS时常见错误 80070005解决方案
查看>>
分享一段ios数据库代码,包括对表的创建、升级、增删查改
查看>>
如何书写高质量的jQuery代码
查看>>
Activity的生命周期整理
查看>>
【记录】JS toUpperCase toLowerCase 大写字母/小写字母转换
查看>>
在 Linux 系统中安装Load Generator ,并在windows 调用
查看>>
Visifire charts ToolBar
查看>>
Mysql查询
查看>>
数据传输流程和socket简单操作
查看>>
利用广播实现ip拨号——示例
查看>>
ProbS CF matlab源代码(二分系统)(原创作品,转载注明出处,谢谢!)
查看>>
OC中KVC的注意点
查看>>
JQ入门(至回调函数)
查看>>
1112: 零起点学算法19——输出特殊值
查看>>
【洛天依】几首歌的翻唱(无伴奏)
查看>>
strcspn
查看>>