<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

        EasyUI的TreeGrid的過濾功能的解決思路

        來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-27 22:33:02
        文檔

        EasyUI的TreeGrid的過濾功能的解決思路

        EasyUI的TreeGrid的過濾功能的解決思路:寫在最前面 這個星期一直在糾結(jié)easyui的treegrid的過濾功能,原因呢,自然是項目中一個莫名奇妙的需求。 easyui雖說是后端程序員的前端框架,但是說句實話,除去api,讓我直接寫里面的節(jié)點信息的話,還真是無從下手,在這里先對前端的同學(xué)膜拜下。 說下需求
        推薦度:
        導(dǎo)讀EasyUI的TreeGrid的過濾功能的解決思路:寫在最前面 這個星期一直在糾結(jié)easyui的treegrid的過濾功能,原因呢,自然是項目中一個莫名奇妙的需求。 easyui雖說是后端程序員的前端框架,但是說句實話,除去api,讓我直接寫里面的節(jié)點信息的話,還真是無從下手,在這里先對前端的同學(xué)膜拜下。 說下需求

        寫在最前面

        這個星期一直在糾結(jié)easyui的treegrid的過濾功能,原因呢,自然是項目中一個莫名奇妙的需求。

        easyui雖說是后端程序員的前端框架,但是說句實話,除去api,讓我直接寫里面的節(jié)點信息的話,還真是無從下手,在這里先對前端的同學(xué)膜拜下。

        說下需求吧,最近一個項目中有個界面使用的easyui的treegrid展示,起初是沒什么問題的,但是隨著數(shù)據(jù)的導(dǎo)入發(fā)現(xiàn)實際操作上十分不便。原因呢是開發(fā)的時候treegrid并沒有做分頁的處理,目前測試環(huán)境數(shù)據(jù)達(dá)到456條,想從中找到一條然后處理的話,只能說費時費力了。于是便產(chǎn)生了開發(fā)個過濾搜索功能的想法。

        起初感覺還是簡單調(diào)用下api什么的,因為我記得datagrid就有個datagrid-filter.js官方擴(kuò)展,但是查遍api手冊,還是沒有發(fā)現(xiàn)treegrid有什么現(xiàn)成的方法。只找到了兩個屬性,loader和loadFilter,好像有點什么關(guān)系。

        期間我也看了下網(wǎng)上的解決方法,不知道是不是太簡單了,網(wǎng)上關(guān)于TreeGrid過濾的資源很少。博問里也都被大牛無視了。

        解決思路

        這里列舉一個在園子里看到的文章,其他也沒有找到類似相關(guān)的內(nèi)容了

        可以查詢根節(jié)點和具體子節(jié)點的信息,開始使用EasyUI的TreeGrid的loadData 加載url的方式不能實現(xiàn)查詢功能,于是利用異步AJAX查詢了一下數(shù)據(jù)返回后,賦值給變量,然后利用TreeGrid的loadData加載這個json格式的返回結(jié)果實現(xiàn)了對TreeGrid的查詢功能,代碼如下,來源地址://www.gxlcms.com/article/120646.htm

        function searchROM() {
         var product = $('#Product').combobox('getValue');
         var keytype = $('#keytype').combobox('getValue');
         var keywords = $('#keywords').val();
         var url = encodeURI('/GoodsROM/ROMList?product=' + product + '&keytype=' + keytype + '&keywords=' + keywords+'&'+Math.random());
         $.post(url, {}, function(data) {
         var d = data;//返回json格式結(jié)果
         $('#grid').treegrid('loadData',d);//加載數(shù)據(jù)更新treegrid
         }, 'json');
         }

        想法是很好的,但是奈何,我們后端的代碼是封裝在General里的,改后臺代碼影響很多,于是還是想到api,試試剛開始的loader和loadFilter吧。

         loadFilter:function(data){ 
         var newData = new Array();
         var filter = $("#filter").val();
         for(var i=0; i<data.length; i++){ 
         if(data[i].nodeName.indexOf(filter)>0){ 
         // 定義一個數(shù)組 
         newData.push(data[i]); 
         }
         }
         if(newData.length==0){
         return data; 
         }else{
         return newData; 
         }
         },

        我在查詢出的結(jié)果上做過濾,返回處理后的結(jié)果,通過load方法重新加載。

        效果不出所望,查詢功能是實現(xiàn)了,但是因為每次查詢都需要load一次數(shù)據(jù)庫,本來頁面初始化時數(shù)據(jù)的查詢時長就達(dá)到20s,查一次來20s查一次來20s,誰受得了,結(jié)果自然被領(lǐng)導(dǎo)無情的打回了。

         沿著這個思路繼續(xù)找,既然訪問數(shù)據(jù)庫可以實現(xiàn),那我是不是在頁面初始化第一次的時候?qū)?shù)據(jù)存起來呢,所以我這次在loadFilter里就沒有做邏輯的驗證了,只是把data值取出來,然后將邏輯處理放在另外的函數(shù)里,功夫不負(fù)有心人,效果終究還是實現(xiàn)了,只是在初始化的時候查一次數(shù)據(jù)庫,其他的搜索就不在load數(shù)據(jù)庫了。下面貼出相關(guān)的代碼給大家參考,有更好的想法的同學(xué)還請給個思路哈,這個先拜謝了。

        var allData = new Array();
        function doOrgChartInit(idTreeGrid, idMenu, idUriQuery) {
         var bFound = true; 
         $('#' + idTreeGrid).treegrid({
         rownumbers:true,
         animate:true,
         collapsible:true,
         fitColumns:true,
         url:idUriQuery,
         idField:'nodeId',
         treeField:'nodeName',
         loadFilter:function(data){ 
         if (bFound&&data[0].nodeName!="Root") {
         allData = data;
         bFound = false;
         }
         return data;
         },
         columns:[
         [
         {halign:'center', align:'left',field:'nodeName', title:'名稱', width:200},
         {halign:'center', align:'left',field:'description', title:'描述', width:100, align:'center'}
         ]
         ],
         // ----------------------------------------------------------------------------------- 工具欄
         toolbar:[
         {
        // 刷新
         iconCls:'icon-reload',
         handler:function () {
         doTreeGridRefresh(idTreeGrid);
         }
         },
         '-',
         {
        // 擴(kuò)展當(dāng)前結(jié)點
         iconCls:'icon-redo',
         handler:function () {
         doTreeGridExpand(idTreeGrid);
         }
         },
         '-',
         {
        // 收縮當(dāng)前結(jié)點
         iconCls:'icon-undo',
         handler:function () {
         doTreeGridCollapse(idTreeGrid);
         }
         },
         '-',
         {
        // 搜索框
         text: '<input id="filter" type="text" />',
         },
         {
        // 搜索
         iconCls:'icon-search',
         handler:function () {
         doFilter(idTreeGrid);
         }
         }
         ],
         // ----------------------------------------------------------------------------------- 彈出菜單
         onContextMenu:function (e, row) {
         e.preventDefault();
         $(this).treegrid('select', row.nodeId);
        // alert(row.orgChartPk);
         vOrgChartPk = row.orgChartPk;
         $('#' + idMenu).menu('show', {
         left:e.pageX,
         top:e.pageY
         });
         }
         });
        }
        function doFilter(idTreeGrid) {
         var newData = new Array();
         var filter = $("#filter").val();
         if (allData.length==0) {
         alert("請先點擊Root初始化界面");
         return false;
         }
         for(var i=0; i<allData.length; i++){ 
         if(allData[i].nodeName.indexOf(filter)>0){ 
         // 定義一個數(shù)組 
         newData.push(allData[i]); 
         }
         }
         if (filter=="") {
         $('#' + idTreeGrid).treegrid('loadData',allData);
         }else{
         $('#' + idTreeGrid).treegrid('loadData',newData);
         }
        }

        總結(jié)

        以上所述是小編給大家介紹的EasyUI的TreeGrid的過濾功能的解決思路,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

        聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        EasyUI的TreeGrid的過濾功能的解決思路

        EasyUI的TreeGrid的過濾功能的解決思路:寫在最前面 這個星期一直在糾結(jié)easyui的treegrid的過濾功能,原因呢,自然是項目中一個莫名奇妙的需求。 easyui雖說是后端程序員的前端框架,但是說句實話,除去api,讓我直接寫里面的節(jié)點信息的話,還真是無從下手,在這里先對前端的同學(xué)膜拜下。 說下需求
        推薦度:
        標(biāo)簽: 過濾 功能 easyUI
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 中文字幕亚洲男人的天堂网络 | 久久成人永久免费播放| 青青操免费在线观看| 91精品免费久久久久久久久| 国产片免费在线观看| 久热综合在线亚洲精品| 亚洲AV无码之国产精品| 日本免费大黄在线观看| 无码专区一va亚洲v专区在线| 亚洲精品在线观看视频| 免费很黄无遮挡的视频毛片| 国产成人yy免费视频| 国产偷国产偷亚洲清高动态图| 精品国产日韩久久亚洲| 你懂的免费在线观看网站| 免费中文字幕在线| 亚洲一本到无码av中文字幕| 无码av免费一区二区三区试看| 久久精品亚洲乱码伦伦中文| 久久精品国产亚洲av瑜伽| 国产免费AV片在线播放唯爱网| 亚洲AV无码成人专区片在线观看| 亚洲成人免费在线| 国产亚洲精品成人AA片| 免费国产a国产片高清| 青青操在线免费观看| 亚洲最新黄色网址| 国产精品免费观看| 亚洲AV综合色区无码一二三区| 国产又黄又爽又猛免费app| 亚洲AV无码久久精品狠狠爱浪潮| 四虎在线免费视频| 日韩亚洲人成在线综合| 亚洲女同成av人片在线观看| 怡红院免费的全部视频| 亚洲一区中文字幕在线观看| 114一级毛片免费| 特级aaaaaaaaa毛片免费视频| 免费亚洲视频在线观看| 日本在线看片免费| 色天使亚洲综合一区二区|