news 2026/4/15 17:55:31

jQuery EasyUI 数据网格 - 添加查询(搜索)功能

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
jQuery EasyUI 数据网格 - 添加查询(搜索)功能

jQuery EasyUI 数据网格 - 添加查询(搜索)功能

datagrid添加查询功能是实际应用中最常见的需求之一。EasyUI 官方没有内置统一的搜索框,但可以通过以下几种方式轻松实现:

  1. 工具栏(toolbar)搜索框 + 手动查询(最常用、灵活)
  2. 内置搜索框扩展(使用 datagrid 的 load 参数过滤)

本教程重点介绍第一种方式:在工具栏添加搜索框和按钮,点击“查询”后向服务器传递参数重新加载数据。

官方参考:

  • 带搜索的 DataGrid 示例:https://www.jeasyui.com/tutorial/datagrid/datagrid23.php
  • 在线 Demo:https://www.jeasyui.com/demo/main/index.php?plugin=DataGrid&pitem=Client+Pagination
步骤 1: 创建带工具栏的 DataGrid
<tableid="dg"class="easyui-datagrid"title="用户管理"style="width:800px;height:500px"data-options="url:'get_users.php',fitColumns:true,pagination:true,rownumbers:true,pageSize:10"><thead><tr><thfield="id"width="80"sortable="true">ID</th><thfield="username"width="100">用户名</th><thfield="name"width="100">姓名</th><thfield="email"width="180">邮箱</th><thfield="phone"width="120">电话</th><thfield="regdate"width="100"sortable="true">注册日期</th></tr></thead></table><!-- 工具栏 --><divid="toolbar"><divstyle="padding:5px;">用户名:<inputid="search_username"class="easyui-textbox"style="width:150px;">姓名:<inputid="search_name"class="easyui-textbox"style="width:150px;">注册日期从:<inputid="search_startdate"class="easyui-datebox"style="width:120px;">到:<inputid="search_enddate"class="easyui-datebox"style="width:120px;"><ahref="javascript:void(0)"class="easyui-linkbutton"iconCls="icon-search"onclick="doSearch()">查询</a><ahref="javascript:void(0)"class="easyui-linkbutton"iconCls="icon-reload"onclick="clearSearch()">重置</a></div></div>
步骤 2: 配置工具栏和 JavaScript 查询逻辑
<scripttype="text/javascript">$(function(){$('#dg').datagrid({toolbar:'#toolbar',// 指定工具栏singleSelect:true});});// 执行查询functiondoSearch(){$('#dg').datagrid('load',{username:$('#search_username').val(),name:$('#search_name').val(),startdate:$('#search_startdate').datebox('getValue'),// YYYY-MM-DD 格式enddate:$('#search_enddate').datebox('getValue')});}// 重置搜索条件functionclearSearch(){$('#search_username').textbox('clear');$('#search_name').textbox('clear');$('#search_startdate').datebox('clear');$('#search_enddate').datebox('clear');// 重新加载原始数据(无参数)$('#dg').datagrid('load',{});}</script>
步骤 3: 后端 PHP 示例(get_users.php)

服务器端接收参数并在 SQL 中使用(注意防注入):

<?php// get_users.php$page=isset($_POST['page'])?intval($_POST['page']):1;$rows=isset($_POST['rows'])?intval($_POST['rows']):10;$offset=($page-1)*$rows;$where=" WHERE 1=1 ";$params=[];// 查询条件if(!empty($_POST['username'])){$where.=" AND username LIKE ?";$params[]='%'.$_POST['username'].'%';}if(!empty($_POST['name'])){$where.=" AND name LIKE ?";$params[]='%'.$_POST['name'].'%';}if(!empty($_POST['startdate'])){$where.=" AND regdate >= ?";$params[]=$_POST['startdate'];}if(!empty($_POST['enddate'])){$where.=" AND regdate <= ?";$params[]=$_POST['enddate'];}// 查询总数$count_sql="SELECT COUNT(*) AS total FROM users".$where;$stmt=$pdo->prepare($count_sql);$stmt->execute($params);$total=$stmt->fetch()['total'];// 查询数据$sql="SELECT * FROM users".$where." ORDER BY id DESC LIMIT$offset,$rows";$stmt=$pdo->prepare($sql);$stmt->execute($params);$items=$stmt->fetchAll(PDO::FETCH_ASSOC);echojson_encode(['total'=>$total,'rows'=>$items]);?>
完整效果
  • 用户在工具栏输入条件 → 点击“查询” → datagrid 自动向get_users.php传递参数 → 服务器返回过滤后的数据 + 分页 → 表格刷新显示结果。
  • 点击“重置” → 清空条件并重新加载所有数据。
扩展功能
  1. 回车键查询
$('#search_username,#search_name').textbox({inputEvents:$.extend({},$.fn.textbox.defaults.inputEvents,{keyup:function(e){if(e.keyCode==13){doSearch();}}})});
  1. 高级搜索面板(可折叠):
    将搜索条件放入一个 panel 或 dialog,点击“高级搜索”展开。

  2. 客户端分页搜索(数据量小):
    使用clientPagination: true+ 本地数据,搜索时过滤 rows。

更多示例
  • 官方搜索示例:https://www.jeasyui.com/tutorial/datagrid/datagrid23.php
  • 复杂查询表单:https://www.jeasyui.com/demo/main/index.php?plugin=DataGrid&pitem=SearchBox

如果需要高级搜索弹窗模糊搜索自动完成导出带查询条件的数据或其他高级查询功能,请继续提问!

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

一键部署EmotiVoice:Docker镜像使用完全手册

一键部署 EmotiVoice&#xff1a;Docker 镜像使用完全手册 在虚拟偶像直播中突然需要一段新台词配音&#xff0c;游戏开发者想让 NPC 感叹“哇&#xff01;这宝藏太棒了&#xff01;”时语气更惊喜一些&#xff0c;或者教育类 App 希望朗读课文时能带有适当的情感起伏——这些场…

作者头像 李华
网站建设 2026/4/15 10:56:06

基于java+ vue畅游游戏销售管理系统(源码+数据库+文档)

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

作者头像 李华
网站建设 2026/4/12 9:43:47

基于springboot + vue酒店预订系统(源码+数据库+文档)

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

作者头像 李华
网站建设 2026/4/10 23:29:33

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

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

作者头像 李华
网站建设 2026/4/14 11:50:02

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

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

作者头像 李华
网站建设 2026/3/31 15:30:54

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

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

作者头像 李华