这几天在项目中前台使用到了easyui 的 combogrid插件为用户提供点选数据项的功能。由于数据项的内容可能有很多,所以仅仅是点选还不够,需要能够对用户的输入进行过滤,即根据用户的输入将某一列与用户输入匹配的数据项筛选保留下来。

实现这一功能需要以下几个步骤:
1.声明一个combogrid
<div class="fitem">
<label>盘条基本信息编号:</label>
<input class="easyui-combogrid" type="text" id="addWireRodId" name="wireRodId" style="width: 150px"
data-options="required:true"></input>
</div>
2.js中请求combogrid需要加载的数据
var wireRod;
$.ajax({
url: "../wireRod/getAll?rows=100000&sort=id&order=asc",
type: "post",
dataType: "json",
success: function (result) {
wireRod = result.wireRod.list;
}
});
3.对combogrid进行配置
$("#addWireRodId").combogrid({
idField:'id',
textField:'codeDesc',
remoteSort: false,
panelWidth: 360,
columns: [[
{field: 'codeDesc', title: '盘条序号', sortable: true, width: 70},
{field: 'code', title: '盘条编码'},
{field: 'name', title: '盘条名称'},
{field: 'specification', title: '盘条规格'},
]],
onSelect: function (index,row) {
//业务功能,不予展示
},
onChange: function (q){
doSearch(q,wireRod,['codeDesc','code','name','specification'],$(this));
},
onShowPanel:function () {
$(this).combogrid('grid').datagrid('loadData', wireRod);
}
});
4.doSearch方法
//q为用户输入,data为远程加载的全部数据项,searchList是需要进行模糊搜索的列名的数组,ele是combogrid对象
//doSearch的思想其实就是,进入方法时将combogrid加载的数据清空,如果用户输入为空则加载全部的数据,输入不为空
//则对每一个数据项做匹配,将匹配到的数据项加入rows数组,相当于重组数据项,只保留符合筛选条件的数据项,
//如果筛选后没有数据,则combogrid加载空,有数据则重新加载重组的数据项
function doSearch(q,data,searchList,ele){
ele.combogrid('grid').datagrid('loadData', []);
if(q == ""){
ele.combogrid('grid').datagrid('loadData', data);
return;
}
var rows = [];
$.each(data,function(i,obj){
for(var p in searchList){
var v = obj[searchList[p]];
if (!!v && v.toString().indexOf(q) >= 0){
rows.push(obj);
break;
}
}
});
if(rows.length == 0){
ele.combogrid('grid').datagrid('loadData', []);
return;
}
ele.combogrid('grid').datagrid('loadData', rows);
}
combogrid有两种mode,local和remote,默认为local,其实remote mode也可以做多列模糊搜索,因为它会向后台发送一个包含叫做‘q'的参数的http请求以请求过滤后的数据,但是这样的不好在于,明明我们已经向后台请求过一次全部的数据,为什么还要再多次请求过滤的数据呢,服务器的负载会加重,所以这种事情能在前端做了就挺好
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# easyui
# combogrid搜索
# tree
# 模糊搜索
# jQuery EasyUI中DataGird动态生成列的方法
# EasyUI学习之Combobox下拉列表(1)
# EasyUI 数据表格datagrid列自适应内容宽度的实现
# Easyui Datagrid自定义按钮列(最后面的操作列)
# easyUI下拉列表点击事件使用方法
# EasyUI学习之Combobox级联下拉列表(2)
# EasyUI使用DataGrid实现动态列数据绑定
# jquery easyui如何实现格式化列
# jEasyUI 设置冻结列的实现示例
# 加载
# 盘条
# 点选
# 为空
# 这一
# 有很多
# 能在
# 仅仅是
# 这几天
# 用户提供
# 有两种
# 还不够
# 它会
# 挺好
# 时将
# 做多
# 要再
# 大家多多
# 清空
# 则对
相关文章:
黑客如何利用漏洞与弱口令入侵网站服务器?
在线ppt制作网站有哪些,请推荐几个好的课件下载的网站?
如何快速生成ASP一键建站模板并优化安全性?
网站制作公司广州有几家,广州尚艺美发学校网站是多少?
如何注册花生壳免费域名并搭建个人网站?
如何做网站制作流程,*游戏网站怎么搭建?
如何高效配置香港服务器实现快速建站?
简历在线制作网站免费,免费下载个人简历的网站是哪些?
东莞市网站制作公司有哪些,东莞找工作用什么网站好?
平台云上自主建站:模板化设计与智能工具打造高效网站
Swift中循环语句中的转移语句 break 和 continue
学校为何禁止电信移动建设网站?
定制建站方案优化指南:企业官网开发与建站费用解析
高端智能建站公司优选:品牌定制与SEO优化一站式服务
如何选择高效便捷的WAP商城建站系统?
深圳网站制作的公司有哪些,dido官方网站?
智能起名网站制作软件有哪些,制作logo的软件?
Android使用GridView实现日历的简单功能
专业商城网站制作公司有哪些,pi商城官网是哪个?
金*站制作公司有哪些,金华教育集团官网?
招商网站制作流程,网站招商广告语?
如何选择适合PHP云建站的开源框架?
宝塔面板如何快速创建新站点?
如何彻底删除建站之星生成的Banner?
长沙做网站要多少钱,长沙国安网络怎么样?
网站制作价目表怎么做,珍爱网婚介费用多少?
宝盒自助建站智能生成技巧:SEO优化与关键词设置指南
测试制作网站有哪些,测试性取向的权威测试或者网站?
如何快速生成橙子建站落地页链接?
如何快速搭建高效简练网站?
企业网站制作费用多少,企业网站空间一般需要多大,费用是多少?
阿里云网站搭建费用解析:服务器价格与建站成本优化指南
建站主机SSH密钥生成步骤及常见问题解答?
高防服务器租用首荐平台,企业级优惠套餐快速部署
网站图片在线制作软件,怎么在图片上做链接?
建站主机服务器选型指南与性能优化方案解析
免费视频制作网站,更新又快又好的免费电影网站?
常州自助建站工具推荐:低成本搭建与模板选择技巧
长春网站建设制作公司,长春的网络公司怎么样主要是能做网站的?
如何高效利用亚马逊云主机搭建企业网站?
深圳企业网站制作设计,在深圳如何网上全流程注册公司?
湖南网站制作公司,湖南上善若水科技有限公司做什么的?
淘宝制作网站有哪些,淘宝网官网主页?
建站之星伪静态规则如何正确配置?
怎么用手机制作网站链接,dw怎么把手机适应页面变成网页?
北京营销型网站制作公司,可以用python做一个营销推广网站吗?
网站专业制作公司,网站编辑是做什么的?好做吗?工作前景如何?
建站主机如何安装配置?新手必看操作指南
海南网站制作公司有哪些,海口网是哪家的?
建站与域名管理如何高效结合?
*请认真填写需求信息,我们会在24小时内与您取得联系。