jQuery EasyUI 数据网格 - 动态改变列

jQuery EasyUI 数据网格 - 动态改变列

datagrid支持在运行时动态显示/隐藏列添加新列移除列改变列标题/宽度/对齐方式等操作。这在实际应用中非常实用,例如:

  • 用户个性化表格视图(选择显示哪些列)
  • 根据权限动态隐藏敏感列
  • 切换不同数据视图模式

官方参考:

  • 动态列示例:https://www.jeasyui.com/tutorial/datagrid/datagrid18.php
  • 在线 Demo:https://www.jeasyui.com/demo/main/index.php?plugin=DataGrid&pitem=Context+Menu+Columns
步骤 1: 引入 EasyUI 资源
<linkrel="stylesheet"type="text/css"href="https://www.jeasyui.com/easyui/themes/default/easyui.css"><linkrel="stylesheet"type="text/css"href="https://www.jeasyui.com/easyui/themes/icon.css"><scripttype="text/javascript"src="https://code.jquery.com/jquery-1.12.4.min.js"></script><scripttype="text/javascript"src="https://www.jeasyui.com/easyui/jquery.easyui.min.js"></script>
步骤 2: 创建基本 DataGrid(包含较多列)
<tableid="dg"class="easyui-datagrid"title="用户管理(动态列示例)"style="width:900px;height:500px"data-options="url:'get_users.php',fitColumns:true,pagination:true,rownumbers:true,singleSelect:true"><thead><tr><thfield="id"width="80">ID</th><thfield="username"width="100">用户名</th><thfield="name"width="100">姓名</th><thfield="email"width="180">邮箱</th><thfield="phone"width="120">电话</th><thfield="address"width="200">地址</th><thfield="regdate"width="100">注册日期</th><thfield="lastlogin"width="150">最后登录</th><thfield="status"width="80"formatter="formatStatus">状态</th></tr></thead></table><!-- 列控制按钮 --><divstyle="margin:10px 0;"><ahref="javascript:void(0)"class="easyui-linkbutton"iconCls="icon-show"onclick="showAllColumns()">显示所有列</a><ahref="javascript:void(0)"class="easyui-linkbutton"iconCls="icon-hide"onclick="hideSomeColumns()">隐藏部分列</a><ahref="javascript:void(0)"class="easyui-menubutton"data-options="menu:'#columnMenu',iconCls:'icon-setting'">列设置</a></div><!-- 右键列菜单(可选) --><divid="columnMenu"class="easyui-menu"style="width:150px;"><divdata-options="name:'username'">用户名</div><divdata-options="name:'email'">邮箱</div><divdata-options="name:'phone'">电话</div><divdata-options="name:'address'">地址</div><divdata-options="name:'lastlogin'">最后登录</div><divclass="menu-sep"></div><divonclick="showAllColumns()">显示所有</div><divonclick="resetColumns()">重置列</div></div>
步骤 3: JavaScript 实现动态改变列
<scripttype="text/javascript">// 保存初始列配置(用于重置)varoriginalColumns=$('#dg').datagrid('getColumnFields');// 显示所有列functionshowAllColumns(){varfields=$('#dg').datagrid('getColumnFields');for(vari=0;i<fields.length;i++){$('#dg').datagrid('showColumn',fields[i]);}}// 隐藏部分列(示例)functionhideSomeColumns(){$('#dg').datagrid('hideColumn','address');$('#dg').datagrid('hideColumn','phone');$('#dg').datagrid('hideColumn','lastlogin');}// 重置列(恢复初始状态)functionresetColumns(){varfields=$('#dg').datagrid('getColumnFields');for(vari=0;i<fields.length;i++){$('#dg').datagrid('hideColumn',fields[i]);}showAllColumns();// 再全部显示}// 状态格式化(示例)functionformatStatus(value){returnvalue==1?'启用':'禁用';}// 列设置菜单点击事件$(function(){$('#columnMenu').menu({onClick:function(item){varfield=item.name;if($('#dg').datagrid('getColumnOption',field).hidden){$('#dg').datagrid('showColumn',field);}else{$('#dg').datagrid('hideColumn',field);}}});// 可选:表头右键菜单控制列显示(高级)$('#dg').datagrid({onHeaderContextMenu:function(e,field){e.preventDefault();$('#columnMenu').menu('show',{left:e.pageX,top:e.pageY});}});});</script>
核心方法总结
方法说明
$('#dg').datagrid('showColumn', 'field')显示指定列
$('#dg').datagrid('hideColumn', 'field')隐藏指定列
$('#dg').datagrid('getColumnFields')获取所有列字段名数组
$('#dg').datagrid('getColumnOption', 'field')获取指定列的完整配置对象(含 hidden 属性)
$('#dg').datagrid('resize')隐藏/显示列后调用,确保布局正确
高级用法:动态添加/移除新列(不常见,但可能)
// 添加新列(需重新定义 columns)functionaddNewColumn(){varnewColumns=[{field:'newfield',title:'新列',width:100}];$('#dg').datagrid({columns:[originalColumns.concat(newColumns)]});}
完整效果
  • 点击按钮可快速显示/隐藏列。
  • 使用下拉菜单勾选/取消列显示。
  • 右键表头弹出列控制菜单(高级体验)。
  • 表格自动调整布局。
实际应用场景
  • 用户个性化设置:记住用户偏好列(结合 localStorage)。
  • 权限控制:根据角色隐藏敏感列(如工资、身份证)。
  • 多视图切换:不同模式显示不同列集。

更多示例:

  • 官方动态列控制:https://www.jeasyui.com/tutorial/datagrid/datagrid18.php
  • 列菜单 Demo:https://www.jeasyui.com/demo/main/index.php?plugin=DataGrid&pitem=Context+Menu+Columns

如果需要保存用户列设置到 localStorage根据权限自动隐藏列、或动态改变列标题/格式化器的完整示例,请继续提问!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1030305.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025上海装潢公司排行:五大靠谱团队推荐与解析,市场装潢门店优质品牌选购指南 - 品牌推荐师

随着上海家装市场进入存量与改善需求并行的新阶段,消费者对装修服务的期待已从基础的功能满足,升级为对设计美学、施工品质、环保健康及长期服务的综合考量。面对市场上数量众多的装潢团队,如何选择一家真正靠谱、能…

基于springboot + vue律师咨询系统(源码+数据库+文档)

律师咨询系统 目录 基于springboot vue律师咨询系统 一、前言 二、系统功能演示 三、技术选型 四、其他项目参考 五、代码参考 六、测试参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 基于springboot vue律师咨询系统 一、前言 博主介绍&#xff1a;✌…

jQuery EasyUI 布局 - 创建 XP 风格左侧面板

jQuery EasyUI 布局 - 创建 XP 风格左侧面板 Windows XP 的资源管理器文件夹视图中&#xff0c;左侧面板通常包含“常见任务”&#xff08;Common Tasks&#xff09;、“文件和文件夹任务”&#xff08;File and Folder Tasks&#xff09;等可折叠的部分。本教程将展示如何使用…

2025 年 12 月工业自动化设备厂家权威推荐榜:上料机/工业机器人/自动化设备,智能高效与稳定可靠的技术先锋深度解析 - 品牌企业推荐师(官方)

2025 年 12 月工业自动化设备厂家权威推荐榜:上料机/工业机器人/自动化设备,智能高效与稳定可靠的技术先锋深度解析 在全球制造业加速向智能化、柔性化转型的宏观背景下,工业自动化设备作为“工业母机”的延伸与赋能…

唤醒沉睡脑力,轻松高效记忆

你是否曾羡慕过那些记忆力超群的人&#xff1f;他们看一本书似乎只需翻几页&#xff0c;学习新知识像喝水一样轻松&#xff0c;而你却总在遗忘中挣扎&#xff1f;别急着归咎于天赋&#xff0c;科学告诉我们&#xff0c;大脑的潜能远比想象中更强大。三易脑科学&#xff08;深圳…

AWS数据迁移实战:如何在不中断业务的情况下完成PB级数据迁移

作为AWS高级咨询合作伙伴的解决方案架构师,我曾主导超过20次PB级数据迁移项目。今天我将分享一套经过验证的迁移框架,帮助您在保证业务连续性的前提下,高效、安全地完成大规模数据迁移。 引言:一次失败迁移的教训 去年,一家金融服务公司试图在周末48小时内完成800TB核心…

Python中同步MySQL驱动对比

在 Python 中&#xff0c;常用的 MySQL 驱动主要包括 mysqlclient、PyMySQL 和 mysql-connector-python&#xff0c;它们在性能、安装复杂度、兼容性和功能支持上各有差异&#xff0c;以下是具体分析&#xff1a; 1. mysqlclient&#xff08;推荐性能优先场景&#xff09; 定位…

基于springboot + vue在线音乐播放系统(源码+数据库+文档)

在线音乐播放系统 目录 基于springboot vue超在线音乐播放系统 一、前言 二、系统功能演示 三、技术选型 四、其他项目参考 五、代码参考 六、测试参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 基于springboot vue超在线音乐播放系统 一、前言 博主介…

《管理世界》地级市常态化财会监督改革试点DID2012-2024

2015《管理世界》地级市常态化财会监督改革试点DID2012-2024数据简介自2020年12月起&#xff0c;中央展开了开展了财汇监督的力度并选取了11个地区作为改革试点的对象。该改革有效增强了企业的监管力度并且有效检测会计实务所的审查机制&#xff0c;对于企业经营守则意识形成唤…

jQuery EasyUI 数据网格 - 格式化列

jQuery EasyUI 数据网格 - 格式化列&#xff08;Column Formatter&#xff09; 添加链接描述datagrid 的 formatter 属性是最强大、最常用的功能之一&#xff0c;它允许你自定义每一列的显示内容。可以返回 HTML 字符串&#xff0c;从而实现&#xff1a; 状态颜色显示&#x…

提示工程架构师进阶:Agentic AI创新应用的高级案例分析

提示工程架构师进阶&#xff1a;Agentic AI创新应用的高级案例分析 一、引言&#xff1a;从“生成式热闹”到“行动式落地”的痛点与破局 你是否见过这样的Agentic AI项目&#xff1f; 看似能自动处理任务&#xff0c;实际却在复杂场景下频繁“卡壳”——要么误解用户意图&…

EmotiVoice项目GitHub爆火背后的原因分析

EmotiVoice项目GitHub爆火背后的原因分析 在智能语音内容爆发的今天&#xff0c;我们早已不满足于“机器能说话”这种基础能力。无论是短视频里的虚拟主播、游戏中的角色对话&#xff0c;还是车载助手的一句提醒&#xff0c;用户期待的是有情绪、有个性、像真人一样的声音表达。…

jQuery EasyUI 布局 - 创建折叠面板

jQuery EasyUI 布局 - 创建折叠面板&#xff08;Accordion&#xff09; jQuery EasyUI 的 accordion 组件是一种经典的折叠面板&#xff08;collapsible panels&#xff09;&#xff0c;它允许将多个面板垂直&#xff08;或水平&#xff09;堆叠。所有面板的标题始终可见&…

语音合成个性化推荐系统:基于用户偏好选择音色

语音合成个性化推荐系统&#xff1a;基于用户偏好选择音色 在智能语音助手越来越频繁地进入我们生活的今天&#xff0c;你是否曾希望它说话的声音更像某个熟悉的人&#xff1f;或者在听有声书时&#xff0c;期待讲述者能带着一丝温柔或激情的情绪娓娓道来&#xff1f;传统的文本…

jQuery EasyUI 布局 - 创建标签页(Tabs)

jQuery EasyUI 布局 - 创建标签页&#xff08;Tabs&#xff09; jQuery EasyUI 的 tabs 组件是一个多标签页&#xff08;tabbed panels&#xff09;容器&#xff0c;用于在有限空间内显示多个内容面板。用户可以通过点击标题切换面板&#xff0c;常用于后台管理系统的页面切换…

2026毕设ssm+vue基于框架的宿舍管理系统论文+程序

本系统&#xff08;程序源码&#xff09;带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、选题背景随着高校学生人数的不断增加&#xff0c;宿舍管理工作日益复杂&#xff0c;传统的人工管理方式已难以满足现代化、信息化管理的…

Cursor Rule:AI如何革新代码导航与智能提示

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个基于Cursor Rule的智能代码导航插件&#xff0c;要求&#xff1a;1. 支持通过自然语言描述跳转到指定代码段&#xff08;如跳转到用户登录验证逻辑&#xff09;2. 根据当前…

多模态特征强行拼接崩了 补交叉注意力才稳住肺癌诊断模型

&#x1f4dd; 博客主页&#xff1a;jaxzheng的CSDN主页 目录医疗数据科学&#xff1a;当Excel遇上CT片 一、政策推动下数据共享有点像"快递站" 二、AI辅助诊断&#xff1a;从"看病"到"看数据" 三、慢性病管理&#xff1a;糖尿病人的"数据健…

EmotiVoice实战指南:如何在项目中集成高表现力TTS

EmotiVoice实战指南&#xff1a;如何在项目中集成高表现力TTS 在智能语音助手越来越“懂人心”的今天&#xff0c;用户早已不再满足于机械地播报天气或读出短信。他们希望听到的是一句带着关切语气的“你今天过得怎么样&#xff1f;”&#xff0c;是一个游戏角色在危急时刻流露…