日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

easyui combogrid 本地模糊搜索过滤多列

發布時間:2023/12/15 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 easyui combogrid 本地模糊搜索过滤多列 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這幾天在項目中前臺使用到了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 本地模糊搜索过滤多列的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。