zoukankan      html  css  js  c++  java
  • Easyui datagrid 数据表格 表格列头右键菜单选择展示列 JS

    Easyui ,数据表格加载出来以后,在表格头右键,会有显示筛选的功能:

    如图:

      

      然后可以取消勾选,就变成下面这个样子:

      

      

      功能的实现是通过重写了easyui 的 $.fn.datagrid.defaults ,有兴趣的可以自己研究一下,下面给出两种实现.

      

      不过需要注意的是,如果你使用了  frozenColumns ,需要注意一下,因为他这里使用的方法,是不适合于冻结列的,当然,也可以自己改一下.

    第一种:(这个只是针对于datagrid)

     1 //表格列头点击事件
     2 $.fn.datagrid.defaults.onHeaderContextMenu = function(e, field) {
     3     e.preventDefault();
     4     var object = this;
     5     if (!object.rightMenu) {
     6         createColumnMenu(this);
     7     }
     8     object.rightMenu.menu('show', {
     9         left: e.pageX,
    10         top: e.pageY
    11     });
    12 }
    13 //属性列右击菜单
    14 var createColumnMenu = function(object) {
    15     var cmenu = $('<div/>').appendTo('body');
    16     cmenu.menu({
    17         onClick: function(item) {
    18             if (item.iconCls == 'icon-ok') {
    19                 $(object).datagrid('hideColumn', item.name);
    20                 cmenu.menu('setIcon', {
    21                     target: item.target,
    22                     iconCls: 'icon-empty'
    23                 });
    24             } else {
    25                 $(object).datagrid('showColumn', item.name);
    26                 cmenu.menu('setIcon', {
    27                     target: item.target,
    28                     iconCls: 'icon-ok'
    29                 });
    30             }
    31         }
    32     });
    33     var fields = $(object).datagrid('getColumnFields');
    34     for (var i = 1; i < fields.length; i++) {
    35         var field = fields[i];
    36         var col = $(object).datagrid('getColumnOption', field);
    37         if (!col.hidden) {
    38             cmenu.menu('appendItem', {
    39                 text: col.title,
    40                 name: field,
    41                 iconCls: 'icon-ok'
    42             });
    43         } else {
    44             cmenu.menu('appendItem', {
    45                 text: col.title,
    46                 name: field,
    47                 iconCls: 'icon-empty'
    48             });
    49         }
    50     }
    51     object.rightMenu = cmenu;
    52 }

    第二种:(这个包含datatree)

    注意:冻结列不在此菜单中

     1 //右键点击事件
     2 var createGridHeaderContextMenu = function(e, field) {
     3     e.preventDefault();
     4     var grid = $(this); /* grid本身 */
     5     var headerContextMenu = this.headerContextMenu; /* grid上的列头菜单对象 */
     6     if (!headerContextMenu) {
     7         var tmenu = $('<div style="100px;"></div>').appendTo('body');
     8 
     9         var fields = grid.datagrid('getColumnFields');
    10         for (var i = 0; i < fields.length; i++) {
    11             var col = grid.datagrid('getColumnOption', fields[i]);
    12             if (!col.hidden) {
    13                 $('<div iconCls="icon-ok" field="' + fields[i] + '"/>').html(col.title).appendTo(tmenu);
    14             } else {
    15                 $('<div iconCls="icon-empty" field="' + fields[i] + '"/>').html(col.title).appendTo(tmenu);
    16             }
    17         }
    18         //菜单内容获取
    19         headerContextMenu = this.headerContextMenu = tmenu.menu({
    20             onClick: function(item) {
    21                 var field = $(item.target).attr('field');
    22                 if (item.iconCls == 'icon-ok') {
    23                     grid.datagrid('hideColumn', field);
    24                     $(this).menu('setIcon', {
    25                         target: item.target,
    26                         iconCls: 'icon-empty'
    27                     });
    28                 } else {
    29                     grid.datagrid('showColumn', field);
    30                     $(this).menu('setIcon', {
    31                         target: item.target,
    32                         iconCls: 'icon-ok'
    33                     });
    34                 }
    35             }
    36         });
    37     }
    38     headerContextMenu.menu('show', {
    39         left: e.pageX,
    40         top: e.pageY
    41     });
    42 };
    43 //重写默认
    44 $.fn.datagrid.defaults.onHeaderContextMenu = createGridHeaderContextMenu;
    45 $.fn.treegrid.defaults.onHeaderContextMenu = createGridHeaderContextMenu;
  • 相关阅读:
    MYSQL查询表信息
    认识WCF
    asp.net mvc 模型验证注解,表单提交
    asp.net mvc 防止开放重定向
    asp.net webForm登录授权
    C# 压缩文件与字节互转
    C#将字节流加密解密
    获取数据库表详细信息、存储过程、视图、的sql
    Mvc4学习笔记一(Ajax.ActionLink)
    java开发之提高java和mysql代码性能和质量
  • 原文地址:https://www.cnblogs.com/applerosa/p/7277986.html
Copyright © 2011-2022 走看看