1. 程式人生 > >處理jqueryeasy ui combobox中文模糊搜尋及資料多處理

處理jqueryeasy ui combobox中文模糊搜尋及資料多處理

##小計一下,備查:

combobox預設初始化,資料多時就會出現卡頓的現象(1800多條的下拉確實有點多)。搜尋中文不及時,下拉麵板始終有延遲。

三種解決思路:

1、網上有一種思路:就是修改easyui 原檔案combobox部分(這個與版本還有關係  反正我是pass)https://blog.csdn.net/d1208/article/details/49001693 (要改的可以看這個);

2、自己重寫個外掛...

3、通過改變控制元件處理事件:加入input事件(我採用的):程式碼如下:

$.ajax({
    		url:basePath + "gzgl/manage/json/ylbcbmc",
    		type:"post",
    		success:function(d){
    			$(".search input[name='cbmcList']").data("list",d);
    			var dd = [];
    			for(var i in d){
    				if(i <= 30){
    					dd.push(d[i]);
    				}
    			}
    	    	$(".search input[name='cbmc']").combobox({
    	    		valueField:"id",
    	    		width:"200px",
    	    		data:dd,
    	    		onBeforeLoad:function(){
    	    			var $this = $(this);
    	    			$this.parent().children().find(".textbox-text").bind("input",function(){
    	    				var v = $(this).val();
    	    				$this.parent().children().find(".textbox-value").val(v);
    	    				var lists = $(".search input[name='cbmcList']").data("list");
        	    			var m = 0;
        	    			var dd = [];
        	    			for(var i in lists){
        	    				var re = new RegExp(v);
        	    				if(re.test(lists[i].id) && m <= 30){
        	    					dd.push(lists[i]);
        	    					m++;
        	    				}
        	    			}
        	    			$this.combobox("loadData",dd);
        	    			var tb = $this.combobox("panel");
        	    			tb.find("div").addClass("show");
    	    			});
    	    		}
    	    		//url: basePath + "gzgl/manage/json/ylbcbmc"
    	    	});
    		}
    	});

 

最後處理目標:下拉條數減少,只支援30條;支援中文實時匹配了。