jQuery EasyUI 应用 – 创建 CRUD 数据网格(千字长文)
💡一则或许对你有用的小广告
欢迎加入小哈的星球 ,你将获得:专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论
- 新项目:《从零手撸:仿小红书(微服务架构)》 正在持续爆肝中,基于
Spring Cloud Alibaba + Spring Boot 3.x + JDK 17...
,点击查看项目介绍 ;- 《从零手撸:前后端分离博客项目(全栈开发)》 2 期已完结,演示链接: http://116.62.199.48/ ;
截止目前, 星球 内专栏累计输出 82w+ 字,讲解图 3441+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,权限管理,Spring Cloud Alibaba 微服务等等,已有 2900+ 小伙伴加入学习 ,欢迎点击围观
前言
在现代 Web 开发中,数据展示与交互是核心需求之一。而 jQuery EasyUI 作为一款功能强大的前端 UI 框架,凭借其丰富的组件库和简化开发流程的特点,成为许多开发者构建数据管理界面的首选工具。其中,数据网格(DataGrid) 是 EasyUI 中最常用且功能强大的组件之一,能够快速实现数据的增删改查(CRUD)操作。
本文将从零开始,分步骤讲解如何使用 jQuery EasyUI 创建一个完整的 CRUD 数据网格。无论是编程初学者还是中级开发者,都能通过本文掌握数据网格的核心概念、配置方法以及实际应用场景。
一、环境搭建与基础概念
1.1 开发环境准备
要开始使用 jQuery EasyUI,首先需要准备以下工具:
- HTML/CSS/JavaScript 基础知识
- jQuery(EasyUI 的依赖库,需先引入)
- jQuery EasyUI 的 CSS 和 JavaScript 文件
你可以通过以下方式引入资源:
<!-- 引入 jQuery -->
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<!-- 引入 EasyUI 的 CSS 和 JS -->
<link rel="stylesheet" href="https://www.jeasyui.com/easyui/themes/default/easyui.css">
<script src="https://www.jeasyui.com/easyui/jquery.easyui.min.js"></script>
1.2 数据网格的核心概念
数据网格(DataGrid)是一个表格形式的组件,支持动态加载数据、分页、排序、过滤等操作。其核心功能包括:
- 数据绑定:通过 URL 或本地数据源动态加载数据。
- CRUD 操作:支持新增、编辑、删除记录。
- 分页与排序:用户可自定义分页大小、排序规则。
- 列定义:自定义表格列的显示内容、宽度、对齐方式等。
比喻:可以将数据网格想象为一个“智能表格”,它像 Excel 一样展示数据,但能通过点击按钮或链接直接对数据进行操作。
二、创建基础数据网格
2.1 HTML 结构搭建
首先在 HTML 中定义一个容器,用于承载数据网格:
<div class="easyui-datagrid"
id="dataGrid"
style="width:100%;height:400px"
url="/api/data" <!-- 数据源的 URL -->
pagination="true" <!-- 启用分页 -->
rownumbers="true"> <!-- 显示行号 -->
</div>
2.2 列定义配置
通过 columns
属性定义表格的列结构。例如,展示用户信息:
$(function(){
$('#dataGrid').datagrid({
columns:[[
{field:'id', title:'ID', width:80},
{field:'name', title:'姓名', width:150},
{field:'email', title:'邮箱', width:200},
{field:'action', title:'操作', width:150,
formatter:function(value,row,index){
return '<a href="javascript:void(0)" onclick="editRow('+index+')">编辑</a> | ' +
'<a href="javascript:void(0)" onclick="deleteRow('+index+')">删除</a>';
}
}
]]
});
});
2.3 数据源配置
数据网格支持从服务端或本地获取数据。以下是一个简单的 JSON 数据示例:
{
"total": 3,
"rows": [
{"id":1, "name":"张三", "email":"zhangsan@example.com"},
{"id":2, "name":"李四", "email":"lisi@example.com"},
{"id":3, "name":"王五", "email":"wangwu@example.com"}
]
}
关键点:服务端返回的数据需包含 total
(总记录数)和 rows
(当前页数据)两个字段。
三、实现 CRUD 功能
3.1 创建(Create)操作
通过弹出表单让用户输入新数据,并提交到服务端:
<!-- 新增按钮 -->
<button onclick="createNew()">新增用户</button>
<!-- 表单弹窗 -->
<div id="createForm" class="easyui-window"
title="新增用户"
style="width:400px;height:250px;display:none">
<form id="newForm">
<input name="name" placeholder="姓名" class="easyui-validatebox" required>
<input name="email" placeholder="邮箱" class="easyui-validatebox" required>
</form>
</div>
<script>
function createNew() {
$('#createForm').window('open');
}
function saveNew() {
// 提交表单到服务端,并刷新数据网格
$('#dataGrid').datagrid('reload');
}
</script>
3.2 编辑(Update)操作
点击“编辑”按钮时,将当前行数据填充到表单中,修改后提交:
function editRow(index) {
var row = $('#dataGrid').datagrid('getRows')[index];
// 将 row 数据填充到编辑表单
$('#editForm').form('load', row);
$('#editForm').window('open');
}
function saveEdit() {
// 提交修改后的数据到服务端
$('#dataGrid').datagrid('reload');
}
3.3 删除(Delete)操作
通过服务端接口删除指定记录:
function deleteRow(index) {
if (confirm("确认删除该记录?")) {
var row = $('#dataGrid').datagrid('getRows')[index];
// 发送删除请求到服务端
$('#dataGrid').datagrid('reload');
}
}
3.4 查询(Read)增强
添加搜索框,根据关键词过滤数据:
<input id="searchInput" placeholder="输入姓名搜索">
<button onclick="searchData()">搜索</button>
<script>
function searchData() {
var keyword = $('#searchInput').val();
$('#dataGrid').datagrid({
queryParams: {keyword: keyword} // 传递查询参数
});
}
</script>
四、进阶功能与优化
4.1 分页与排序
默认情况下,数据网格会自动处理分页,但可通过配置进一步优化:
$('#dataGrid').datagrid({
pagination: true,
pageSize: 10, // 每页显示条数
sortName: 'id', // 默认排序字段
sortOrder: 'asc' // 排序顺序
});
4.2 表格样式与交互
通过 CSS 自定义表格样式,或使用 EasyUI 的内置主题:
/* 自定义列样式 */
.datagrid-cell {
font-size: 14px;
color: #333;
}
4.3 异常处理与验证
在表单提交时,添加数据验证逻辑:
$('#newForm').form({
onSubmit: function() {
return $(this).form('validate'); // 验证表单字段
},
success: function(data) {
alert("保存成功!");
}
});
结论
通过本文,我们系统地学习了如何使用 jQuery EasyUI 创建一个功能完整的 CRUD 数据网格。从环境搭建到基础配置,再到进阶功能的实现,每一步都结合了代码示例和实际场景,确保开发者能够快速上手并应用到项目中。
关键要点回顾:
- 数据网格的核心配置包括列定义、数据源和交互事件。
- CRUD 操作通过表单弹窗和异步请求实现,需与服务端接口配合。
- 通过分页、排序、验证等优化,提升用户体验和数据安全性。
希望本文能成为你构建数据管理界面的实用指南。如果遇到问题,可以通过 EasyUI 的官方文档或社区寻求帮助,继续深入探索其强大功能!