news 2026/2/6 14:29:51

jQuery EasyUI 数据网格 - 格式化列

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
jQuery EasyUI 数据网格 - 格式化列

jQuery EasyUI 数据网格 - 格式化列(Column Formatter)

添加链接描述datagridformatter属性是最强大、最常用的功能之一,它允许你自定义每一列的显示内容。可以返回 HTML 字符串,从而实现:

  • 状态颜色显示(如启用绿色、禁用红色)
  • 操作按钮(编辑、删除、查看)
  • 图片显示
  • 进度条、星级评分
  • 组合多个字段显示
  • 链接、图标等富文本

官方参考:

  • 教程:https://www.jeasyui.com/tutorial/datagrid/datagrid3.php
  • 在线 Demo:https://www.jeasyui.com/demo/main/index.php?plugin=DataGrid&pitem=Formatter
步骤 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="status"width="80"align="center"formatter="formatStatus">状态</th><thfield="regdate"width="100"formatter="formatDate">注册日期</th><thfield="score"width="100"formatter="formatScore">评分</th><thfield="avatar"width="80"formatter="formatAvatar">头像</th><thfield="action"width="150"align="center"formatter="formatAction">操作</th></tr></thead></table>
步骤 3: 定义各种格式化函数
<scripttype="text/javascript">// 1. 状态格式化(颜色文本)functionformatStatus(value,row,index){if(value==1){return'<span style="color:green;font-weight:bold;">启用</span>';}elseif(value==0){return'<span style="color:red;">禁用</span>';}else{return'<span style="color:gray;">未知</span>';}}// 2. 日期格式化functionformatDate(value,row,index){if(!value)return'';vardate=newDate(value);returndate.getFullYear()+'-'+('0'+(date.getMonth()+1)).slice(-2)+'-'+('0'+date.getDate()).slice(-2);}// 3. 评分格式化(星级)functionformatScore(value,row,index){varstars='';for(vari=1;i<=5;i++){if(i<=value){stars+='★';// 实心星}else{stars+='☆';// 空心星}}return'<span style="color:#ff9800;font-size:16px;">'+stars+'</span> ('+value+')';}// 4. 头像格式化(显示图片)functionformatAvatar(value,row,index){if(value){return'<img src="'+value+'" style="width:40px;height:40px;border-radius:50%;">';}else{return'<img src="default_avatar.jpg" style="width:40px;height:40px;border-radius:50%;">';}}// 5. 操作列格式化(按钮)functionformatAction(value,row,index){return'<a href="javascript:viewUser('+row.id+')" class="easyui-linkbutton" iconCls="icon-search" plain="true">查看</a> '+'<a href="javascript:editUser('+row.id+')" class="easyui-linkbutton" iconCls="icon-edit" plain="true">编辑</a> '+'<a href="javascript:deleteUser('+row.id+')" class="easyui-linkbutton" iconCls="icon-remove" plain="true">删除</a>';}// 操作函数示例functionviewUser(id){$.messager.alert('查看','查看用户详情 ID: '+id);}functioneditUser(id){$.messager.alert('编辑','打开编辑窗口 ID: '+id);}functiondeleteUser(id){$.messager.confirm('确认','确定删除 ID 为 '+id+' 的用户吗?',function(r){if(r){$('#dg').datagrid('reload');$.messager.show({title:'成功',msg:'删除成功'});}});}// 页面加载后解析按钮(重要!)$(function(){// 让格式化后的 linkbutton 生效$.parser.parse('#dg');});</script>
关键说明
  • formatter 函数签名function(value, row, index)
    • value:当前单元格的值
    • row:整行数据对象(最常用,可访问其他字段)
    • index:行索引
  • 返回 HTML:可以返回任意 HTML 字符串,包括<span><img><a>等。
  • 按钮生效:如果返回easyui-linkbutton,必须在加载后调用$.parser.parse()解析,否则只是普通链接。
  • 性能:formatter 在每行渲染时调用,避免复杂逻辑。
高级格式化示例
// 组合字段显示functionformatInfo(value,row,index){return'用户:'+row.name+'<br>邮箱:'+row.email+'<br>电话:'+row.phone;}// 进度条functionformatProgress(value,row,index){return'<div style="width:100%;background:#f0f0f0;border-radius:4px;">'+'<div style="width:'+value+'%;background:#4caf50;height:18px;border-radius:4px;text-align:center;color:white;">'+value+'%'+'</div></div>';}
完整效果
  • 状态列显示彩色文字。
  • 日期自动格式化。
  • 评分显示金色五星。
  • 头像显示圆形图片。
  • 操作列显示三个可点击的图标按钮。

更多示例:

  • 官方格式化列:https://www.jeasyui.com/tutorial/datagrid/datagrid3.php
  • 复杂格式化 Demo:https://www.jeasyui.com/demo/main/index.php?plugin=DataGrid&pitem=Formatter

如果需要条件格式化(如根据值变色)、编辑器结合格式化自定义 tooltip格式化冻结列,请继续提问!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/5 11:59:52

企业级语音解决方案新秀:EmotiVoice商业应用前景

企业级语音解决方案新秀&#xff1a;EmotiVoice商业应用前景 在智能客服越来越“懂你”的今天&#xff0c;一句冰冷的“您好&#xff0c;欢迎致电”&#xff0c;或许已经无法满足用户对服务温度的期待。当用户因订单延迟而焦急时&#xff0c;系统若能以温和、歉意的语调回应&am…

作者头像 李华
网站建设 2026/2/4 21:27:49

2026毕设ssm+vue基于框架的人力资源管理系统论文+程序

本系统&#xff08;程序源码&#xff09;带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、选题背景随着互联网技术的迅速发展&#xff0c;动漫文化在全球范围内日益流行&#xff0c;尤其在年轻群体中具有广泛影响力。国内动漫产…

作者头像 李华
网站建设 2026/2/5 15:35:57

EmotiVoice模型镜像下载及本地部署详细教程

EmotiVoice模型镜像下载及本地部署详细教程 在语音交互日益普及的今天&#xff0c;用户对“声音”的要求早已超越了“能听清”这一基本标准。从智能音箱到虚拟主播&#xff0c;从有声书平台到游戏NPC对话系统&#xff0c;大家期待的是富有情感、自然流畅、甚至带有熟悉音色的声…

作者头像 李华
网站建设 2026/2/6 7:25:30

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

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

作者头像 李华
网站建设 2026/2/3 2:55:17

OpenFeign 实现请求重试:全方案详解

目录 一、核心概念&#xff1a;重试的适用场景 二、方案 1&#xff1a;OpenFeign 原生重试&#xff08;基于 Retryer&#xff09; 1. 原生 Retryer 接口定义 2. 内置重试实现&#xff1a;Default 3. 配置原生重试&#xff08;两种方式&#xff09; 方式 1&#xff1a;配置…

作者头像 李华
网站建设 2026/2/4 9:32:22

TEC技术:重塑车载体验的温控革命

一、TEC 技术核心原理与车载适配性TEC&#xff08;Thermo Electric Cooler&#xff0c;半导体制冷模块&#xff09;基于帕尔帖效应实现电能与热能的直接转换&#xff1a;当电流通过两种不同半导体材料构成的电偶时&#xff0c;一端吸收热量形成冷端&#xff0c;另一端释放热量形…

作者头像 李华