使用select2分批非同步載入大量資料
阿新 • • 發佈:2019-01-29
//select2選項 var select2Conf = {"allowClear":allowClear,width:"100%"}; //select2使用data list,還是ajax if(select2Data.length<=100){ select2Conf.data = select2Data; } else{ select2Conf.ajax = { url:Search_Url, dataType:"json", delay:250, type:"POST", data:function(params){ var cols = {}; cols[elem.dictCodeKey]=1; cols[elem.dictNameKey]=1; var orderby = {}; orderby[elem.dictNameKey]='asc'; var whereClause = {type:1}; whereClause[elem.dictNameKey] = params.term; var pageLength = 10; var postWhere= { where : whereClause, order : orderby, page:{start:(params.page-1)*pageLength || 0,length:pageLength} }; return {"where":JSON.stringify(postWhere)}; }, cache:true, processResults: function (res, params) { var list = res["data"]; var options = []; for(var i= 0, len=list.length;i<len;i++){ var option = {"id":list[i][elem.dictCodeKey], "text":list[i][elem.dictNameKey]}; options.push(option); } return { results: options, pagination: { more:res.total>list.length } }; }, escapeMarkup: function (markup) { return markup; }, minimumInputLength: 1 } } var $sel2=$elem.select2(select2Conf);