jquery.datalist.js 3.67 KB
/**
 * jQuery EasyUI 1.5
 * 
 * Copyright (c) 2009-2016 www.jeasyui.com. All rights reserved.
 *
 * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php
 * To use it on other terms please contact us: info@jeasyui.com
 *
 */
(function($){
function _1(_2){
var _3=$.data(_2,"datalist").options;
$(_2).datagrid($.extend({},_3,{cls:"datalist"+(_3.lines?" datalist-lines":""),frozenColumns:(_3.frozenColumns&&_3.frozenColumns.length)?_3.frozenColumns:(_3.checkbox?[[{field:"_ck",checkbox:true}]]:undefined),columns:(_3.columns&&_3.columns.length)?_3.columns:[[{field:_3.textField,width:"100%",formatter:function(_4,_5,_6){
return _3.textFormatter?_3.textFormatter(_4,_5,_6):_4;
}}]]}));
};
var _7=$.extend({},$.fn.datagrid.defaults.view,{render:function(_8,_9,_a){
var _b=$.data(_8,"datagrid");
var _c=_b.options;
if(_c.groupField){
var g=this.groupRows(_8,_b.data.rows);
this.groups=g.groups;
_b.data.rows=g.rows;
var _d=[];
for(var i=0;i<g.groups.length;i++){
_d.push(this.renderGroup.call(this,_8,i,g.groups[i],_a));
}
$(_9).html(_d.join(""));
}else{
$(_9).html(this.renderTable(_8,0,_b.data.rows,_a));
}
},renderGroup:function(_e,_f,_10,_11){
var _12=$.data(_e,"datagrid");
var _13=_12.options;
var _14=$(_e).datagrid("getColumnFields",_11);
var _15=[];
_15.push("<div class=\"datagrid-group\" group-index="+_f+">");
if(!_11){
_15.push("<span class=\"datagrid-group-title\">");
_15.push(_13.groupFormatter.call(_e,_10.value,_10.rows));
_15.push("</span>");
}
_15.push("</div>");
_15.push(this.renderTable(_e,_10.startIndex,_10.rows,_11));
return _15.join("");
},groupRows:function(_16,_17){
var _18=$.data(_16,"datagrid");
var _19=_18.options;
var _1a=[];
for(var i=0;i<_17.length;i++){
var row=_17[i];
var _1b=_1c(row[_19.groupField]);
if(!_1b){
_1b={value:row[_19.groupField],rows:[row]};
_1a.push(_1b);
}else{
_1b.rows.push(row);
}
}
var _1d=0;
var _17=[];
for(var i=0;i<_1a.length;i++){
var _1b=_1a[i];
_1b.startIndex=_1d;
_1d+=_1b.rows.length;
_17=_17.concat(_1b.rows);
}
return {groups:_1a,rows:_17};
function _1c(_1e){
for(var i=0;i<_1a.length;i++){
var _1f=_1a[i];
if(_1f.value==_1e){
return _1f;
}
}
return null;
};
}});
$.fn.datalist=function(_20,_21){
if(typeof _20=="string"){
var _22=$.fn.datalist.methods[_20];
if(_22){
return _22(this,_21);
}else{
return this.datagrid(_20,_21);
}
}
_20=_20||{};
return this.each(function(){
var _23=$.data(this,"datalist");
if(_23){
$.extend(_23.options,_20);
}else{
var _24=$.extend({},$.fn.datalist.defaults,$.fn.datalist.parseOptions(this),_20);
_24.columns=$.extend(true,[],_24.columns);
_23=$.data(this,"datalist",{options:_24});
}
_1(this);
if(!_23.options.data){
var _25=$.fn.datalist.parseData(this);
if(_25.total){
$(this).datalist("loadData",_25);
}
}
});
};
$.fn.datalist.methods={options:function(jq){
return $.data(jq[0],"datalist").options;
}};
$.fn.datalist.parseOptions=function(_26){
return $.extend({},$.fn.datagrid.parseOptions(_26),$.parser.parseOptions(_26,["valueField","textField","groupField",{checkbox:"boolean",lines:"boolean"}]));
};
$.fn.datalist.parseData=function(_27){
var _28=$.data(_27,"datalist").options;
var _29={total:0,rows:[]};
$(_27).children().each(function(){
var _2a=$.parser.parseOptions(this,["value","group"]);
var row={};
var _2b=$(this).html();
row[_28.valueField]=_2a.value!=undefined?_2a.value:_2b;
row[_28.textField]=_2b;
if(_28.groupField){
row[_28.groupField]=_2a.group;
}
_29.total++;
_29.rows.push(row);
});
return _29;
};
$.fn.datalist.defaults=$.extend({},$.fn.datagrid.defaults,{fitColumns:true,singleSelect:true,showHeader:false,checkbox:false,lines:false,valueField:"value",textField:"text",groupField:"",view:_7,textFormatter:function(_2c,row){
return _2c;
},groupFormatter:function(_2d,_2e){
return _2d;
}});
})(jQuery);