国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > JS > 正文

easyui combogrid實現本地模糊搜索過濾多列

2024-05-06 16:37:09
字體:
來源:轉載
供稿:網友

這幾天在項目中前臺使用到了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請求以請求過濾后的數據,但是這樣的不好在于,明明我們已經向后臺請求過一次全部的數據,為什么還要再多次請求過濾的數據呢,服務器的負載會加重,所以這種事情能在前端做了就挺好

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 乌拉特中旗| 调兵山市| 红原县| 沈阳市| 九龙县| 洪泽县| 微山县| 明光市| 调兵山市| 鄂州市| 长海县| 靖江市| 巴东县| 林芝县| 辽源市| 东丰县| 宁河县| 林西县| 香河县| 福安市| 阜宁县| 易门县| 重庆市| 嘉禾县| 湖州市| 五莲县| 万全县| 广宁县| 祁门县| 治县。| 英山县| 宜君县| 罗甸县| 福安市| 友谊县| 罗源县| 平阳县| 大兴区| 东乡族自治县| 高碑店市| 琼结县|