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

如图:

  

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

  

  

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

  

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

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

 //表格列头点击事件
$.fn.datagrid.defaults.onHeaderContextMenu = function(e, field) {
e.preventDefault();
var object = this;
if (!object.rightMenu) {
createColumnMenu(this);
}
object.rightMenu.menu('show', {
left: e.pageX,
top: e.pageY
});
}
//属性列右击菜单
var createColumnMenu = function(object) {
var cmenu = $('<div/>').appendTo('body');
cmenu.menu({
onClick: function(item) {
if (item.iconCls == 'icon-ok') {
$(object).datagrid('hideColumn', item.name);
cmenu.menu('setIcon', {
target: item.target,
iconCls: 'icon-empty'
});
} else {
$(object).datagrid('showColumn', item.name);
cmenu.menu('setIcon', {
target: item.target,
iconCls: 'icon-ok'
});
}
}
});
var fields = $(object).datagrid('getColumnFields');
for (var i = 1; i < fields.length; i++) {
var field = fields[i];
var col = $(object).datagrid('getColumnOption', field);
if (!col.hidden) {
cmenu.menu('appendItem', {
text: col.title,
name: field,
iconCls: 'icon-ok'
});
} else {
cmenu.menu('appendItem', {
text: col.title,
name: field,
iconCls: 'icon-empty'
});
}
}
object.rightMenu = cmenu;
}

第二种:(这个包含datatree)

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

 //右键点击事件
var createGridHeaderContextMenu = function(e, field) {
e.preventDefault();
var grid = $(this); /* grid本身 */
var headerContextMenu = this.headerContextMenu; /* grid上的列头菜单对象 */
if (!headerContextMenu) {
var tmenu = $('<div style="width:100px;"></div>').appendTo('body'); var fields = grid.datagrid('getColumnFields');
for (var i = 0; i < fields.length; i++) {
var col = grid.datagrid('getColumnOption', fields[i]);
if (!col.hidden) {
$('<div iconCls="icon-ok" field="' + fields[i] + '"/>').html(col.title).appendTo(tmenu);
} else {
$('<div iconCls="icon-empty" field="' + fields[i] + '"/>').html(col.title).appendTo(tmenu);
}
}
//菜单内容获取
headerContextMenu = this.headerContextMenu = tmenu.menu({
onClick: function(item) {
var field = $(item.target).attr('field');
if (item.iconCls == 'icon-ok') {
grid.datagrid('hideColumn', field);
$(this).menu('setIcon', {
target: item.target,
iconCls: 'icon-empty'
});
} else {
grid.datagrid('showColumn', field);
$(this).menu('setIcon', {
target: item.target,
iconCls: 'icon-ok'
});
}
}
});
}
headerContextMenu.menu('show', {
left: e.pageX,
top: e.pageY
});
};
//重写默认
$.fn.datagrid.defaults.onHeaderContextMenu = createGridHeaderContextMenu;
$.fn.treegrid.defaults.onHeaderContextMenu = createGridHeaderContextMenu;

Easyui datagrid 数据表格 表格列头右键菜单选择展示列 JS的更多相关文章

  1. [WinForm]DataGridView列头右键菜单

    [WinForm]DataGridView列头右键菜单 前言 继续"不误正业" - - #,记录一下.有时候有这样的需求:DataGridView的列头菜单可以选择具体显示哪些列, ...

  2. gridcontrol的列头右键菜单问题

    Dev控件GridControl设置了一个右键菜单 this.gridControl1.ContextMenu = contextMenu2; 而GridControl在运行排序的时候,即 gridv ...

  3. EasyUI datagrid数据表格的函数getData返回来的是什么

    EasyUI datagrid数据表格的函数getData返回来的是什么? 他返回来的是这么一个对象: Object { rows=[10], total=15} 其中rows就是每一行的数据,是这些 ...

  4. 数据网格和树-EasyUI Datagrid 数据网格、EasyUI Propertygrid 属性网格、EasyUI Tree 树、EasyUI Treegrid 树形网格

    EasyUI Datagrid 数据网格 扩展自 $.fn.panel.defaults.通过 $.fn.datagrid.defaults 重写默认的 defaults. 数据网格(datagrid ...

  5. 扩充 jQuery EasyUI Datagrid 数据行鼠标悬停/离开事件(onMouseOver/onMouseOut)

    客户需求: jQuery EasyUI Datagrid 用户列表鼠标悬停/离开数据行时显示人员头像(onMouseOver/onMouseOut) 如图所示,Datagrid 鼠标悬停/离开数据行时 ...

  6. 扩展 jQuery EasyUI Datagrid 数据行鼠标悬停/离开事件(onMouseOver/onMouseOut)

    客户需求: jQuery EasyUI Datagrid 用户列表鼠标悬停/离开数据行时显示人员头像(onMouseOver/onMouseOut) 如图所示,Datagrid 鼠标悬停/离开数据行时 ...

  7. RDIFramework.NET框架Web中datagrid与treegrid控件自动生成右键菜单与列标题右键菜单

    在实际应用中常可以看到数据展示控件有右键菜单的功能,对应的列标题也可以右键弹出快捷菜单设置指定列的显示与隐藏等功能.在我们的RDIFramework.NET Web框架中,只要是使用了EasyUI的D ...

  8. jquery easyui DataGrid 数据表格 属性

    用法 1.  <table id="tt"></table> 1.  $('#tt').datagrid({ 2.      url:'datagrid_d ...

  9. easyui datagrid可编辑表格使用经验分享

    文章目录 1相关接口方法 2列属性formatter 3编辑器类型 3.1基于my97的编辑器 3.2简单的密码编辑器 3.3动态增加/删除编辑器 4字段的级联操作 4.1combobox的级联操作 ...

随机推荐

  1. JAVA进阶13

    间歇性混吃等死,持续性踌躇满志系列-------------第13天 1.查看线程的运行状态 package code0327; class Demo01 implements Runnable { ...

  2. 412 6个题 BOM and DOM 定义计数器 网页跳转 网页前进后退

    AM BOM-JavaScript: 提供一系列对象哟用于和浏览器窗口交互,对象主要有 window.document.location.navigator.screen 统称浏览器对象模型(Brow ...

  3. mysl 常用函数 union all if ifnull exists case when

    1.union all UNION 操作符用于合并两个或多个 SELECT 语句的结果集.请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列.列也必须拥有相似的数据类型.同时,每条 S ...

  4. [Linux容器]当我们谈容器的时候,我们在谈什么

    Docker在当下很火,那么,当我们谈Docker,谈容器的时候,我们在谈什么? 或者说,你对Docker,对容器了解吗?容器,到底是怎么一回事儿? 这篇文章着重来讲一下Linux容器,为什么强调Li ...

  5. Selenium Locating Elements

    Locating Elements Location Methods: find_element_by_id find_element_by_name find_element_by_xpath fi ...

  6. 【easy】88. Merge Sorted Array 合并两个有序数组

    合并两个有序的list 把排序好的nums2插入nums1中,假设nums1这个vector的空间永远是够的 思路:倒序!! class Solution { public: void merge(v ...

  7. Linux日志每日备份脚本

    2018-5-28 10:59:07 星期一 原理是: 1. 每天0点0分crontab执行备份脚本 2. 先将当前日志文件copy一份作为备份, 备份文件名的后缀为前一天 3. 用当前日志的最后50 ...

  8. 【原创】大叔问题定位分享(21)spark执行insert overwrite非常慢,比hive还要慢

    最近把一些sql执行从hive改到spark,发现执行更慢,sql主要是一些insert overwrite操作,从执行计划看到,用到InsertIntoHiveTable spark-sql> ...

  9. liunx 下WebBench 安装与压力测试

    安装: wget http://blog.zyan.cc/soft/linux/webbench/webbench-1.5.tar.gz tar zxvf webbench-1.5.tar.gz cd ...

  10. Ubuntu16.04 安装NVIDIA显卡驱动

    1. 禁用系统默认的集成驱动 Ubuntu系统集成的显卡驱动程序是nouveau,它是第三方为NVIDIA开发的开源驱动,我们需要先将其屏蔽才能安装NVIDIA官方驱动.将驱动添加到黑名单blackl ...