关于esyui的table表格动态列显示

有两种方法可以实现:
第一种是右键表格的头,然后是下拉框显示表格头的动态显示,感觉客户体验不太好,每次只能一个一个的显示或者隐藏。
第二种是弹出一个窗口,选一个隐藏一个,客户选完之后,就可以关闭弹出窗口了。

下边是第一种的实现代码。

var createGridHeaderContextMenu = function(e, field) {
			e.preventDefault();
			var grid = $(this);/* grid本身 */
			var headerContextMenu = this.headerContextMenu;/* grid上的列头菜单对象 */
			var okCls = 'tree-checkbox1';// 选中
			var emptyCls = 'tree-checkbox0';// 取消
			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 fildOption = grid.datagrid('getColumnOption', fields[i]);
					if (!fildOption.hidden) {
						$('<div iconCls="' + okCls + '" field="' + fields[i] + '"/>')
								.html(fildOption.title).appendTo(tmenu);
					} else {
						$('<div iconCls="' + emptyCls + '" field="' + fields[i] + '"/>')
								.html(fildOption.title).appendTo(tmenu);
					}
				}
				headerContextMenu = this.headerContextMenu = tmenu.menu({
					onClick : function(item) {
						var field = $(item.target).attr('field');
						if (item.iconCls == okCls) {
							grid.datagrid('hideColumn', field);
							$(this).menu('setIcon', {
								target : item.target,
								iconCls : emptyCls
							});
						} else {
							grid.datagrid('showColumn', field);
							$(this).menu('setIcon', {
								target : item.target,
								iconCls : okCls
							});
						}
					}
				});
			}
			headerContextMenu.menu('show', {
				left : e.pageX,
				top : e.pageY
			});
		};
		$.fn.datagrid.defaults.onHeaderContextMenu = createGridHeaderContextMenu;
		$.fn.treegrid.defaults.onHeaderContextMenu = createGridHeaderContextMenu;
//只需要写到js标签里即可生效。

第二种弹出层实现easyui的列动态显示

其中有关于jquery获值的时候需要注意jQuery的版本

jquery1.6以前用 ( t h i s ) . a t t r ( ′ c h e c k e d ′ ) 得 到 的 是 t r u e / f a l s e , 但 是 到 了 1.6 以 后 (this).attr('checked')得到的是true/false,但是到了1.6以后 (this).attr(checked)true/false1.6(this).attr(‘checked’)就有问题了,得使用$(this).is(":checked")可以得到true和false。 跟jquery的版本有关系 还有一步就是给弹出层写完数据之后要及时的清空弹出层数据,这点必须要考虑到

清空写入弹出层的数据
最后再附上弹出层的代码
在这里插入图片描述
如果有更加优化的代码,可以交流一下。
欢迎加群讨论:711169717

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值