jquery.datagrid.js 66 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574
  1. /**
  2. * jQuery EasyUI 1.5.2
  3. *
  4. * Copyright (c) 2009-2017 www.jeasyui.com. All rights reserved.
  5. *
  6. * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php
  7. * To use it on other terms please contact us: info@jeasyui.com
  8. *
  9. */
  10. (function($){
  11. var _1=0;
  12. function _2(a,o){
  13. return $.easyui.indexOfArray(a,o);
  14. };
  15. function _3(a,o,id){
  16. $.easyui.removeArrayItem(a,o,id);
  17. };
  18. function _4(a,o,r){
  19. $.easyui.addArrayItem(a,o,r);
  20. };
  21. function _5(_6,aa){
  22. return $.data(_6,"treegrid")?aa.slice(1):aa;
  23. };
  24. function _7(_8){
  25. var _9=$.data(_8,"datagrid");
  26. var _a=_9.options;
  27. var _b=_9.panel;
  28. var dc=_9.dc;
  29. var ss=null;
  30. if(_a.sharedStyleSheet){
  31. ss=typeof _a.sharedStyleSheet=="boolean"?"head":_a.sharedStyleSheet;
  32. }else{
  33. ss=_b.closest("div.datagrid-view");
  34. if(!ss.length){
  35. ss=dc.view;
  36. }
  37. }
  38. var cc=$(ss);
  39. var _c=$.data(cc[0],"ss");
  40. if(!_c){
  41. _c=$.data(cc[0],"ss",{cache:{},dirty:[]});
  42. }
  43. return {add:function(_d){
  44. var ss=["<style type=\"text/css\" easyui=\"true\">"];
  45. for(var i=0;i<_d.length;i++){
  46. _c.cache[_d[i][0]]={width:_d[i][1]};
  47. }
  48. var _e=0;
  49. for(var s in _c.cache){
  50. var _f=_c.cache[s];
  51. _f.index=_e++;
  52. ss.push(s+"{width:"+_f.width+"}");
  53. }
  54. ss.push("</style>");
  55. $(ss.join("\n")).appendTo(cc);
  56. cc.children("style[easyui]:not(:last)").remove();
  57. },getRule:function(_10){
  58. var _11=cc.children("style[easyui]:last")[0];
  59. var _12=_11.styleSheet?_11.styleSheet:(_11.sheet||document.styleSheets[document.styleSheets.length-1]);
  60. var _13=_12.cssRules||_12.rules;
  61. return _13[_10];
  62. },set:function(_14,_15){
  63. var _16=_c.cache[_14];
  64. if(_16){
  65. _16.width=_15;
  66. var _17=this.getRule(_16.index);
  67. if(_17){
  68. _17.style["width"]=_15;
  69. }
  70. }
  71. },remove:function(_18){
  72. var tmp=[];
  73. for(var s in _c.cache){
  74. if(s.indexOf(_18)==-1){
  75. tmp.push([s,_c.cache[s].width]);
  76. }
  77. }
  78. _c.cache={};
  79. this.add(tmp);
  80. },dirty:function(_19){
  81. if(_19){
  82. _c.dirty.push(_19);
  83. }
  84. },clean:function(){
  85. for(var i=0;i<_c.dirty.length;i++){
  86. this.remove(_c.dirty[i]);
  87. }
  88. _c.dirty=[];
  89. }};
  90. };
  91. function _1a(_1b,_1c){
  92. var _1d=$.data(_1b,"datagrid");
  93. var _1e=_1d.options;
  94. var _1f=_1d.panel;
  95. if(_1c){
  96. $.extend(_1e,_1c);
  97. }
  98. if(_1e.fit==true){
  99. var p=_1f.panel("panel").parent();
  100. _1e.width=p.width();
  101. _1e.height=p.height();
  102. }
  103. _1f.panel("resize",_1e);
  104. };
  105. function _20(_21){
  106. var _22=$.data(_21,"datagrid");
  107. var _23=_22.options;
  108. var dc=_22.dc;
  109. var _24=_22.panel;
  110. var _25=_24.width();
  111. var _26=_24.height();
  112. var _27=dc.view;
  113. var _28=dc.view1;
  114. var _29=dc.view2;
  115. var _2a=_28.children("div.datagrid-header");
  116. var _2b=_29.children("div.datagrid-header");
  117. var _2c=_2a.find("table");
  118. var _2d=_2b.find("table");
  119. _27.width(_25);
  120. var _2e=_2a.children("div.datagrid-header-inner").show();
  121. _28.width(_2e.find("table").width());
  122. if(!_23.showHeader){
  123. _2e.hide();
  124. }
  125. _29.width(_25-_28._outerWidth());
  126. _28.children()._outerWidth(_28.width());
  127. _29.children()._outerWidth(_29.width());
  128. var all=_2a.add(_2b).add(_2c).add(_2d);
  129. all.css("height","");
  130. var hh=Math.max(_2c.height(),_2d.height());
  131. all._outerHeight(hh);
  132. _27.children(".datagrid-empty").css("top",hh+"px");
  133. dc.body1.add(dc.body2).children("table.datagrid-btable-frozen").css({position:"absolute",top:dc.header2._outerHeight()});
  134. var _2f=dc.body2.children("table.datagrid-btable-frozen")._outerHeight();
  135. var _30=_2f+_2b._outerHeight()+_29.children(".datagrid-footer")._outerHeight();
  136. _24.children(":not(.datagrid-view,.datagrid-mask,.datagrid-mask-msg)").each(function(){
  137. _30+=$(this)._outerHeight();
  138. });
  139. var _31=_24.outerHeight()-_24.height();
  140. var _32=_24._size("minHeight")||"";
  141. var _33=_24._size("maxHeight")||"";
  142. _28.add(_29).children("div.datagrid-body").css({marginTop:_2f,height:(isNaN(parseInt(_23.height))?"":(_26-_30)),minHeight:(_32?_32-_31-_30:""),maxHeight:(_33?_33-_31-_30:"")});
  143. _27.height(_29.height());
  144. };
  145. function _34(_35,_36,_37){
  146. var _38=$.data(_35,"datagrid").data.rows;
  147. var _39=$.data(_35,"datagrid").options;
  148. var dc=$.data(_35,"datagrid").dc;
  149. if(!dc.body1.is(":empty")&&(!_39.nowrap||_39.autoRowHeight||_37)){
  150. if(_36!=undefined){
  151. var tr1=_39.finder.getTr(_35,_36,"body",1);
  152. var tr2=_39.finder.getTr(_35,_36,"body",2);
  153. _3a(tr1,tr2);
  154. }else{
  155. var tr1=_39.finder.getTr(_35,0,"allbody",1);
  156. var tr2=_39.finder.getTr(_35,0,"allbody",2);
  157. _3a(tr1,tr2);
  158. if(_39.showFooter){
  159. var tr1=_39.finder.getTr(_35,0,"allfooter",1);
  160. var tr2=_39.finder.getTr(_35,0,"allfooter",2);
  161. _3a(tr1,tr2);
  162. }
  163. }
  164. }
  165. _20(_35);
  166. if(_39.height=="auto"){
  167. var _3b=dc.body1.parent();
  168. var _3c=dc.body2;
  169. var _3d=_3e(_3c);
  170. var _3f=_3d.height;
  171. if(_3d.width>_3c.width()){
  172. _3f+=18;
  173. }
  174. _3f-=parseInt(_3c.css("marginTop"))||0;
  175. _3b.height(_3f);
  176. _3c.height(_3f);
  177. dc.view.height(dc.view2.height());
  178. }
  179. dc.body2.triggerHandler("scroll");
  180. function _3a(_40,_41){
  181. for(var i=0;i<_41.length;i++){
  182. var tr1=$(_40[i]);
  183. var tr2=$(_41[i]);
  184. tr1.css("height","");
  185. tr2.css("height","");
  186. var _42=Math.max(tr1.height(),tr2.height());
  187. tr1.css("height",_42);
  188. tr2.css("height",_42);
  189. }
  190. };
  191. function _3e(cc){
  192. var _43=0;
  193. var _44=0;
  194. $(cc).children().each(function(){
  195. var c=$(this);
  196. if(c.is(":visible")){
  197. _44+=c._outerHeight();
  198. if(_43<c._outerWidth()){
  199. _43=c._outerWidth();
  200. }
  201. }
  202. });
  203. return {width:_43,height:_44};
  204. };
  205. };
  206. function _45(_46,_47){
  207. var _48=$.data(_46,"datagrid");
  208. var _49=_48.options;
  209. var dc=_48.dc;
  210. if(!dc.body2.children("table.datagrid-btable-frozen").length){
  211. dc.body1.add(dc.body2).prepend("<table class=\"datagrid-btable datagrid-btable-frozen\" cellspacing=\"0\" cellpadding=\"0\"></table>");
  212. }
  213. _4a(true);
  214. _4a(false);
  215. _20(_46);
  216. function _4a(_4b){
  217. var _4c=_4b?1:2;
  218. var tr=_49.finder.getTr(_46,_47,"body",_4c);
  219. (_4b?dc.body1:dc.body2).children("table.datagrid-btable-frozen").append(tr);
  220. };
  221. };
  222. function _4d(_4e,_4f){
  223. function _50(){
  224. var _51=[];
  225. var _52=[];
  226. $(_4e).children("thead").each(function(){
  227. var opt=$.parser.parseOptions(this,[{frozen:"boolean"}]);
  228. $(this).find("tr").each(function(){
  229. var _53=[];
  230. $(this).find("th").each(function(){
  231. var th=$(this);
  232. var col=$.extend({},$.parser.parseOptions(this,["id","field","align","halign","order","width",{sortable:"boolean",checkbox:"boolean",resizable:"boolean",fixed:"boolean"},{rowspan:"number",colspan:"number"}]),{title:(th.html()||undefined),hidden:(th.attr("hidden")?true:undefined),formatter:(th.attr("formatter")?eval(th.attr("formatter")):undefined),styler:(th.attr("styler")?eval(th.attr("styler")):undefined),sorter:(th.attr("sorter")?eval(th.attr("sorter")):undefined)});
  233. if(col.width&&String(col.width).indexOf("%")==-1){
  234. col.width=parseInt(col.width);
  235. }
  236. if(th.attr("editor")){
  237. var s=$.trim(th.attr("editor"));
  238. if(s.substr(0,1)=="{"){
  239. col.editor=eval("("+s+")");
  240. }else{
  241. col.editor=s;
  242. }
  243. }
  244. _53.push(col);
  245. });
  246. opt.frozen?_51.push(_53):_52.push(_53);
  247. });
  248. });
  249. return [_51,_52];
  250. };
  251. var _54=$("<div class=\"datagrid-wrap\">"+"<div class=\"datagrid-view\">"+"<div class=\"datagrid-view1\">"+"<div class=\"datagrid-header\">"+"<div class=\"datagrid-header-inner\"></div>"+"</div>"+"<div class=\"datagrid-body\">"+"<div class=\"datagrid-body-inner\"></div>"+"</div>"+"<div class=\"datagrid-footer\">"+"<div class=\"datagrid-footer-inner\"></div>"+"</div>"+"</div>"+"<div class=\"datagrid-view2\">"+"<div class=\"datagrid-header\">"+"<div class=\"datagrid-header-inner\"></div>"+"</div>"+"<div class=\"datagrid-body\"></div>"+"<div class=\"datagrid-footer\">"+"<div class=\"datagrid-footer-inner\"></div>"+"</div>"+"</div>"+"</div>"+"</div>").insertAfter(_4e);
  252. _54.panel({doSize:false,cls:"datagrid"});
  253. $(_4e).addClass("datagrid-f").hide().appendTo(_54.children("div.datagrid-view"));
  254. var cc=_50();
  255. var _55=_54.children("div.datagrid-view");
  256. var _56=_55.children("div.datagrid-view1");
  257. var _57=_55.children("div.datagrid-view2");
  258. return {panel:_54,frozenColumns:cc[0],columns:cc[1],dc:{view:_55,view1:_56,view2:_57,header1:_56.children("div.datagrid-header").children("div.datagrid-header-inner"),header2:_57.children("div.datagrid-header").children("div.datagrid-header-inner"),body1:_56.children("div.datagrid-body").children("div.datagrid-body-inner"),body2:_57.children("div.datagrid-body"),footer1:_56.children("div.datagrid-footer").children("div.datagrid-footer-inner"),footer2:_57.children("div.datagrid-footer").children("div.datagrid-footer-inner")}};
  259. };
  260. function _58(_59){
  261. var _5a=$.data(_59,"datagrid");
  262. var _5b=_5a.options;
  263. var dc=_5a.dc;
  264. var _5c=_5a.panel;
  265. _5a.ss=$(_59).datagrid("createStyleSheet");
  266. _5c.panel($.extend({},_5b,{id:null,doSize:false,onResize:function(_5d,_5e){
  267. if($.data(_59,"datagrid")){
  268. _20(_59);
  269. $(_59).datagrid("fitColumns");
  270. _5b.onResize.call(_5c,_5d,_5e);
  271. }
  272. },onExpand:function(){
  273. if($.data(_59,"datagrid")){
  274. $(_59).datagrid("fixRowHeight").datagrid("fitColumns");
  275. _5b.onExpand.call(_5c);
  276. }
  277. }}));
  278. _5a.rowIdPrefix="datagrid-row-r"+(++_1);
  279. _5a.cellClassPrefix="datagrid-cell-c"+_1;
  280. _5f(dc.header1,_5b.frozenColumns,true);
  281. _5f(dc.header2,_5b.columns,false);
  282. _60();
  283. dc.header1.add(dc.header2).css("display",_5b.showHeader?"block":"none");
  284. dc.footer1.add(dc.footer2).css("display",_5b.showFooter?"block":"none");
  285. if(_5b.toolbar){
  286. if($.isArray(_5b.toolbar)){
  287. $("div.datagrid-toolbar",_5c).remove();
  288. var tb=$("<div class=\"datagrid-toolbar\"><table cellspacing=\"0\" cellpadding=\"0\"><tr></tr></table></div>").prependTo(_5c);
  289. var tr=tb.find("tr");
  290. for(var i=0;i<_5b.toolbar.length;i++){
  291. var btn=_5b.toolbar[i];
  292. if(btn=="-"){
  293. $("<td><div class=\"datagrid-btn-separator\"></div></td>").appendTo(tr);
  294. }else{
  295. var td=$("<td></td>").appendTo(tr);
  296. var _61=$("<a href=\"javascript:;\"></a>").appendTo(td);
  297. _61[0].onclick=eval(btn.handler||function(){
  298. });
  299. _61.linkbutton($.extend({},btn,{plain:true}));
  300. }
  301. }
  302. }else{
  303. $(_5b.toolbar).addClass("datagrid-toolbar").prependTo(_5c);
  304. $(_5b.toolbar).show();
  305. }
  306. }else{
  307. $("div.datagrid-toolbar",_5c).remove();
  308. }
  309. $("div.datagrid-pager",_5c).remove();
  310. if(_5b.pagination){
  311. var _62=$("<div class=\"datagrid-pager\"></div>");
  312. if(_5b.pagePosition=="bottom"){
  313. _62.appendTo(_5c);
  314. }else{
  315. if(_5b.pagePosition=="top"){
  316. _62.addClass("datagrid-pager-top").prependTo(_5c);
  317. }else{
  318. var _63=$("<div class=\"datagrid-pager datagrid-pager-top\"></div>").prependTo(_5c);
  319. _62.appendTo(_5c);
  320. _62=_62.add(_63);
  321. }
  322. }
  323. _62.pagination({total:0,pageNumber:_5b.pageNumber,pageSize:_5b.pageSize,pageList:_5b.pageList,onSelectPage:function(_64,_65){
  324. _5b.pageNumber=_64||1;
  325. _5b.pageSize=_65;
  326. _62.pagination("refresh",{pageNumber:_64,pageSize:_65});
  327. _bf(_59);
  328. }});
  329. _5b.pageSize=_62.pagination("options").pageSize;
  330. }
  331. function _5f(_66,_67,_68){
  332. if(!_67){
  333. return;
  334. }
  335. $(_66).show();
  336. $(_66).empty();
  337. var tmp=$("<div class=\"datagrid-cell\" style=\"position:absolute;left:-99999px\"></div>").appendTo("body");
  338. tmp._outerWidth(99);
  339. var _69=100-parseInt(tmp[0].style.width);
  340. tmp.remove();
  341. var _6a=[];
  342. var _6b=[];
  343. var _6c=[];
  344. if(_5b.sortName){
  345. _6a=_5b.sortName.split(",");
  346. _6b=_5b.sortOrder.split(",");
  347. }
  348. var t=$("<table class=\"datagrid-htable\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tbody></tbody></table>").appendTo(_66);
  349. for(var i=0;i<_67.length;i++){
  350. var tr=$("<tr class=\"datagrid-header-row\"></tr>").appendTo($("tbody",t));
  351. var _6d=_67[i];
  352. for(var j=0;j<_6d.length;j++){
  353. var col=_6d[j];
  354. var _6e="";
  355. if(col.rowspan){
  356. _6e+="rowspan=\""+col.rowspan+"\" ";
  357. }
  358. if(col.colspan){
  359. _6e+="colspan=\""+col.colspan+"\" ";
  360. if(!col.id){
  361. col.id=["datagrid-td-group"+_1,i,j].join("-");
  362. }
  363. }
  364. if(col.id){
  365. _6e+="id=\""+col.id+"\"";
  366. }
  367. var td=$("<td "+_6e+"></td>").appendTo(tr);
  368. if(col.checkbox){
  369. td.attr("field",col.field);
  370. $("<div class=\"datagrid-header-check\"></div>").html("<input type=\"checkbox\"/>").appendTo(td);
  371. }else{
  372. if(col.field){
  373. td.attr("field",col.field);
  374. td.append("<div class=\"datagrid-cell\"><span></span><span class=\"datagrid-sort-icon\"></span></div>");
  375. td.find("span:first").html(col.title);
  376. var _6f=td.find("div.datagrid-cell");
  377. var pos=_2(_6a,col.field);
  378. if(pos>=0){
  379. _6f.addClass("datagrid-sort-"+_6b[pos]);
  380. }
  381. if(col.sortable){
  382. _6f.addClass("datagrid-sort");
  383. }
  384. if(col.resizable==false){
  385. _6f.attr("resizable","false");
  386. }
  387. if(col.width){
  388. var _70=$.parser.parseValue("width",col.width,dc.view,_5b.scrollbarSize+(_5b.rownumbers?_5b.rownumberWidth:0));
  389. col.deltaWidth=_69;
  390. col.boxWidth=_70-_69;
  391. }else{
  392. col.auto=true;
  393. }
  394. _6f.css("text-align",(col.halign||col.align||""));
  395. col.cellClass=_5a.cellClassPrefix+"-"+col.field.replace(/[\.|\s]/g,"-");
  396. _6f.addClass(col.cellClass);
  397. }else{
  398. $("<div class=\"datagrid-cell-group\"></div>").html(col.title).appendTo(td);
  399. }
  400. }
  401. if(col.hidden){
  402. td.hide();
  403. _6c.push(col.field);
  404. }
  405. }
  406. }
  407. if(_68&&_5b.rownumbers){
  408. var td=$("<td rowspan=\""+_5b.frozenColumns.length+"\"><div class=\"datagrid-header-rownumber\"></div></td>");
  409. if($("tr",t).length==0){
  410. td.wrap("<tr class=\"datagrid-header-row\"></tr>").parent().appendTo($("tbody",t));
  411. }else{
  412. td.prependTo($("tr:first",t));
  413. }
  414. }
  415. for(var i=0;i<_6c.length;i++){
  416. _c1(_59,_6c[i],-1);
  417. }
  418. };
  419. function _60(){
  420. var _71=[[".datagrid-header-rownumber",(_5b.rownumberWidth-1)+"px"],[".datagrid-cell-rownumber",(_5b.rownumberWidth-1)+"px"]];
  421. var _72=_73(_59,true).concat(_73(_59));
  422. for(var i=0;i<_72.length;i++){
  423. var col=_74(_59,_72[i]);
  424. if(col&&!col.checkbox){
  425. _71.push(["."+col.cellClass,col.boxWidth?col.boxWidth+"px":"auto"]);
  426. }
  427. }
  428. _5a.ss.add(_71);
  429. _5a.ss.dirty(_5a.cellSelectorPrefix);
  430. _5a.cellSelectorPrefix="."+_5a.cellClassPrefix;
  431. };
  432. };
  433. function _75(_76){
  434. var _77=$.data(_76,"datagrid");
  435. var _78=_77.panel;
  436. var _79=_77.options;
  437. var dc=_77.dc;
  438. var _7a=dc.header1.add(dc.header2);
  439. _7a.unbind(".datagrid");
  440. for(var _7b in _79.headerEvents){
  441. _7a.bind(_7b+".datagrid",_79.headerEvents[_7b]);
  442. }
  443. var _7c=_7a.find("div.datagrid-cell");
  444. var _7d=_79.resizeHandle=="right"?"e":(_79.resizeHandle=="left"?"w":"e,w");
  445. _7c.each(function(){
  446. $(this).resizable({handles:_7d,disabled:($(this).attr("resizable")?$(this).attr("resizable")=="false":false),minWidth:25,onStartResize:function(e){
  447. _77.resizing=true;
  448. _7a.css("cursor",$("body").css("cursor"));
  449. if(!_77.proxy){
  450. _77.proxy=$("<div class=\"datagrid-resize-proxy\"></div>").appendTo(dc.view);
  451. }
  452. _77.proxy.css({left:e.pageX-$(_78).offset().left-1,display:"none"});
  453. setTimeout(function(){
  454. if(_77.proxy){
  455. _77.proxy.show();
  456. }
  457. },500);
  458. },onResize:function(e){
  459. _77.proxy.css({left:e.pageX-$(_78).offset().left-1,display:"block"});
  460. return false;
  461. },onStopResize:function(e){
  462. _7a.css("cursor","");
  463. $(this).css("height","");
  464. var _7e=$(this).parent().attr("field");
  465. var col=_74(_76,_7e);
  466. col.width=$(this)._outerWidth();
  467. col.boxWidth=col.width-col.deltaWidth;
  468. col.auto=undefined;
  469. $(this).css("width","");
  470. $(_76).datagrid("fixColumnSize",_7e);
  471. _77.proxy.remove();
  472. _77.proxy=null;
  473. if($(this).parents("div:first.datagrid-header").parent().hasClass("datagrid-view1")){
  474. _20(_76);
  475. }
  476. $(_76).datagrid("fitColumns");
  477. _79.onResizeColumn.call(_76,_7e,col.width);
  478. setTimeout(function(){
  479. _77.resizing=false;
  480. },0);
  481. }});
  482. });
  483. var bb=dc.body1.add(dc.body2);
  484. bb.unbind();
  485. for(var _7b in _79.rowEvents){
  486. bb.bind(_7b,_79.rowEvents[_7b]);
  487. }
  488. dc.body1.bind("mousewheel DOMMouseScroll",function(e){
  489. e.preventDefault();
  490. var e1=e.originalEvent||window.event;
  491. var _7f=e1.wheelDelta||e1.detail*(-1);
  492. if("deltaY" in e1){
  493. _7f=e1.deltaY*-1;
  494. }
  495. var dg=$(e.target).closest("div.datagrid-view").children(".datagrid-f");
  496. var dc=dg.data("datagrid").dc;
  497. dc.body2.scrollTop(dc.body2.scrollTop()-_7f);
  498. });
  499. dc.body2.bind("scroll",function(){
  500. var b1=dc.view1.children("div.datagrid-body");
  501. b1.scrollTop($(this).scrollTop());
  502. var c1=dc.body1.children(":first");
  503. var c2=dc.body2.children(":first");
  504. if(c1.length&&c2.length){
  505. var _80=c1.offset().top;
  506. var _81=c2.offset().top;
  507. if(_80!=_81){
  508. b1.scrollTop(b1.scrollTop()+_80-_81);
  509. }
  510. }
  511. dc.view2.children("div.datagrid-header,div.datagrid-footer")._scrollLeft($(this)._scrollLeft());
  512. dc.body2.children("table.datagrid-btable-frozen").css("left",-$(this)._scrollLeft());
  513. });
  514. };
  515. function _82(_83){
  516. return function(e){
  517. var td=$(e.target).closest("td[field]");
  518. if(td.length){
  519. var _84=_85(td);
  520. if(!$(_84).data("datagrid").resizing&&_83){
  521. td.addClass("datagrid-header-over");
  522. }else{
  523. td.removeClass("datagrid-header-over");
  524. }
  525. }
  526. };
  527. };
  528. function _86(e){
  529. var _87=_85(e.target);
  530. var _88=$(_87).datagrid("options");
  531. var ck=$(e.target).closest("input[type=checkbox]");
  532. if(ck.length){
  533. if(_88.singleSelect&&_88.selectOnCheck){
  534. return false;
  535. }
  536. if(ck.is(":checked")){
  537. _89(_87);
  538. }else{
  539. _8a(_87);
  540. }
  541. e.stopPropagation();
  542. }else{
  543. var _8b=$(e.target).closest(".datagrid-cell");
  544. if(_8b.length){
  545. var p1=_8b.offset().left+5;
  546. var p2=_8b.offset().left+_8b._outerWidth()-5;
  547. if(e.pageX<p2&&e.pageX>p1){
  548. _8c(_87,_8b.parent().attr("field"));
  549. }
  550. }
  551. }
  552. };
  553. function _8d(e){
  554. var _8e=_85(e.target);
  555. var _8f=$(_8e).datagrid("options");
  556. var _90=$(e.target).closest(".datagrid-cell");
  557. if(_90.length){
  558. var p1=_90.offset().left+5;
  559. var p2=_90.offset().left+_90._outerWidth()-5;
  560. var _91=_8f.resizeHandle=="right"?(e.pageX>p2):(_8f.resizeHandle=="left"?(e.pageX<p1):(e.pageX<p1||e.pageX>p2));
  561. if(_91){
  562. var _92=_90.parent().attr("field");
  563. var col=_74(_8e,_92);
  564. if(col.resizable==false){
  565. return;
  566. }
  567. $(_8e).datagrid("autoSizeColumn",_92);
  568. col.auto=false;
  569. }
  570. }
  571. };
  572. function _93(e){
  573. var _94=_85(e.target);
  574. var _95=$(_94).datagrid("options");
  575. var td=$(e.target).closest("td[field]");
  576. _95.onHeaderContextMenu.call(_94,e,td.attr("field"));
  577. };
  578. function _96(_97){
  579. return function(e){
  580. var tr=_98(e.target);
  581. if(!tr){
  582. return;
  583. }
  584. var _99=_85(tr);
  585. if($.data(_99,"datagrid").resizing){
  586. return;
  587. }
  588. var _9a=_9b(tr);
  589. if(_97){
  590. _9c(_99,_9a);
  591. }else{
  592. var _9d=$.data(_99,"datagrid").options;
  593. _9d.finder.getTr(_99,_9a).removeClass("datagrid-row-over");
  594. }
  595. };
  596. };
  597. function _9e(e){
  598. var tr=_98(e.target);
  599. if(!tr){
  600. return;
  601. }
  602. var _9f=_85(tr);
  603. var _a0=$.data(_9f,"datagrid").options;
  604. var _a1=_9b(tr);
  605. var tt=$(e.target);
  606. if(tt.parent().hasClass("datagrid-cell-check")){
  607. if(_a0.singleSelect&&_a0.selectOnCheck){
  608. tt._propAttr("checked",!tt.is(":checked"));
  609. _a2(_9f,_a1);
  610. }else{
  611. if(tt.is(":checked")){
  612. tt._propAttr("checked",false);
  613. _a2(_9f,_a1);
  614. }else{
  615. tt._propAttr("checked",true);
  616. _a3(_9f,_a1);
  617. }
  618. }
  619. }else{
  620. var row=_a0.finder.getRow(_9f,_a1);
  621. var td=tt.closest("td[field]",tr);
  622. if(td.length){
  623. var _a4=td.attr("field");
  624. _a0.onClickCell.call(_9f,_a1,_a4,row[_a4]);
  625. }
  626. if(_a0.singleSelect==true){
  627. _a5(_9f,_a1);
  628. }else{
  629. if(_a0.ctrlSelect){
  630. if(e.metaKey||e.ctrlKey){
  631. if(tr.hasClass("datagrid-row-selected")){
  632. _a6(_9f,_a1);
  633. }else{
  634. _a5(_9f,_a1);
  635. }
  636. }else{
  637. if(e.shiftKey){
  638. $(_9f).datagrid("clearSelections");
  639. var _a7=Math.min(_a0.lastSelectedIndex||0,_a1);
  640. var _a8=Math.max(_a0.lastSelectedIndex||0,_a1);
  641. for(var i=_a7;i<=_a8;i++){
  642. _a5(_9f,i);
  643. }
  644. }else{
  645. $(_9f).datagrid("clearSelections");
  646. _a5(_9f,_a1);
  647. _a0.lastSelectedIndex=_a1;
  648. }
  649. }
  650. }else{
  651. if(tr.hasClass("datagrid-row-selected")){
  652. _a6(_9f,_a1);
  653. }else{
  654. _a5(_9f,_a1);
  655. }
  656. }
  657. }
  658. _a0.onClickRow.apply(_9f,_5(_9f,[_a1,row]));
  659. }
  660. };
  661. function _a9(e){
  662. var tr=_98(e.target);
  663. if(!tr){
  664. return;
  665. }
  666. var _aa=_85(tr);
  667. var _ab=$.data(_aa,"datagrid").options;
  668. var _ac=_9b(tr);
  669. var row=_ab.finder.getRow(_aa,_ac);
  670. var td=$(e.target).closest("td[field]",tr);
  671. if(td.length){
  672. var _ad=td.attr("field");
  673. _ab.onDblClickCell.call(_aa,_ac,_ad,row[_ad]);
  674. }
  675. _ab.onDblClickRow.apply(_aa,_5(_aa,[_ac,row]));
  676. };
  677. function _ae(e){
  678. var tr=_98(e.target);
  679. if(tr){
  680. var _af=_85(tr);
  681. var _b0=$.data(_af,"datagrid").options;
  682. var _b1=_9b(tr);
  683. var row=_b0.finder.getRow(_af,_b1);
  684. _b0.onRowContextMenu.call(_af,e,_b1,row);
  685. }else{
  686. var _b2=_98(e.target,".datagrid-body");
  687. if(_b2){
  688. var _af=_85(_b2);
  689. var _b0=$.data(_af,"datagrid").options;
  690. _b0.onRowContextMenu.call(_af,e,-1,null);
  691. }
  692. }
  693. };
  694. function _85(t){
  695. return $(t).closest("div.datagrid-view").children(".datagrid-f")[0];
  696. };
  697. function _98(t,_b3){
  698. var tr=$(t).closest(_b3||"tr.datagrid-row");
  699. if(tr.length&&tr.parent().length){
  700. return tr;
  701. }else{
  702. return undefined;
  703. }
  704. };
  705. function _9b(tr){
  706. if(tr.attr("datagrid-row-index")){
  707. return parseInt(tr.attr("datagrid-row-index"));
  708. }else{
  709. return tr.attr("node-id");
  710. }
  711. };
  712. function _8c(_b4,_b5){
  713. var _b6=$.data(_b4,"datagrid");
  714. var _b7=_b6.options;
  715. _b5=_b5||{};
  716. var _b8={sortName:_b7.sortName,sortOrder:_b7.sortOrder};
  717. if(typeof _b5=="object"){
  718. $.extend(_b8,_b5);
  719. }
  720. var _b9=[];
  721. var _ba=[];
  722. if(_b8.sortName){
  723. _b9=_b8.sortName.split(",");
  724. _ba=_b8.sortOrder.split(",");
  725. }
  726. if(typeof _b5=="string"){
  727. var _bb=_b5;
  728. var col=_74(_b4,_bb);
  729. if(!col.sortable||_b6.resizing){
  730. return;
  731. }
  732. var _bc=col.order||"asc";
  733. var pos=_2(_b9,_bb);
  734. if(pos>=0){
  735. var _bd=_ba[pos]=="asc"?"desc":"asc";
  736. if(_b7.multiSort&&_bd==_bc){
  737. _b9.splice(pos,1);
  738. _ba.splice(pos,1);
  739. }else{
  740. _ba[pos]=_bd;
  741. }
  742. }else{
  743. if(_b7.multiSort){
  744. _b9.push(_bb);
  745. _ba.push(_bc);
  746. }else{
  747. _b9=[_bb];
  748. _ba=[_bc];
  749. }
  750. }
  751. _b8.sortName=_b9.join(",");
  752. _b8.sortOrder=_ba.join(",");
  753. }
  754. if(_b7.onBeforeSortColumn.call(_b4,_b8.sortName,_b8.sortOrder)==false){
  755. return;
  756. }
  757. $.extend(_b7,_b8);
  758. var dc=_b6.dc;
  759. var _be=dc.header1.add(dc.header2);
  760. _be.find("div.datagrid-cell").removeClass("datagrid-sort-asc datagrid-sort-desc");
  761. for(var i=0;i<_b9.length;i++){
  762. var col=_74(_b4,_b9[i]);
  763. _be.find("div."+col.cellClass).addClass("datagrid-sort-"+_ba[i]);
  764. }
  765. if(_b7.remoteSort){
  766. _bf(_b4);
  767. }else{
  768. _c0(_b4,$(_b4).datagrid("getData"));
  769. }
  770. _b7.onSortColumn.call(_b4,_b7.sortName,_b7.sortOrder);
  771. };
  772. function _c1(_c2,_c3,_c4){
  773. _c5(true);
  774. _c5(false);
  775. function _c5(_c6){
  776. var aa=_c7(_c2,_c6);
  777. if(aa.length){
  778. var _c8=aa[aa.length-1];
  779. var _c9=_2(_c8,_c3);
  780. if(_c9>=0){
  781. for(var _ca=0;_ca<aa.length-1;_ca++){
  782. var td=$("#"+aa[_ca][_c9]);
  783. var _cb=parseInt(td.attr("colspan")||1)+(_c4||0);
  784. td.attr("colspan",_cb);
  785. if(_cb){
  786. td.show();
  787. }else{
  788. td.hide();
  789. }
  790. }
  791. }
  792. }
  793. };
  794. };
  795. function _cc(_cd){
  796. var _ce=$.data(_cd,"datagrid");
  797. var _cf=_ce.options;
  798. var dc=_ce.dc;
  799. var _d0=dc.view2.children("div.datagrid-header");
  800. dc.body2.css("overflow-x","");
  801. _d1();
  802. _d2();
  803. _d3();
  804. _d1(true);
  805. if(_d0.width()>=_d0.find("table").width()){
  806. dc.body2.css("overflow-x","hidden");
  807. }
  808. function _d3(){
  809. if(!_cf.fitColumns){
  810. return;
  811. }
  812. if(!_ce.leftWidth){
  813. _ce.leftWidth=0;
  814. }
  815. var _d4=0;
  816. var cc=[];
  817. var _d5=_73(_cd,false);
  818. for(var i=0;i<_d5.length;i++){
  819. var col=_74(_cd,_d5[i]);
  820. if(_d6(col)){
  821. _d4+=col.width;
  822. cc.push({field:col.field,col:col,addingWidth:0});
  823. }
  824. }
  825. if(!_d4){
  826. return;
  827. }
  828. cc[cc.length-1].addingWidth-=_ce.leftWidth;
  829. var _d7=_d0.children("div.datagrid-header-inner").show();
  830. var _d8=_d0.width()-_d0.find("table").width()-_cf.scrollbarSize+_ce.leftWidth;
  831. var _d9=_d8/_d4;
  832. if(!_cf.showHeader){
  833. _d7.hide();
  834. }
  835. for(var i=0;i<cc.length;i++){
  836. var c=cc[i];
  837. var _da=parseInt(c.col.width*_d9);
  838. c.addingWidth+=_da;
  839. _d8-=_da;
  840. }
  841. cc[cc.length-1].addingWidth+=_d8;
  842. for(var i=0;i<cc.length;i++){
  843. var c=cc[i];
  844. if(c.col.boxWidth+c.addingWidth>0){
  845. c.col.boxWidth+=c.addingWidth;
  846. c.col.width+=c.addingWidth;
  847. }
  848. }
  849. _ce.leftWidth=_d8;
  850. $(_cd).datagrid("fixColumnSize");
  851. };
  852. function _d2(){
  853. var _db=false;
  854. var _dc=_73(_cd,true).concat(_73(_cd,false));
  855. $.map(_dc,function(_dd){
  856. var col=_74(_cd,_dd);
  857. if(String(col.width||"").indexOf("%")>=0){
  858. var _de=$.parser.parseValue("width",col.width,dc.view,_cf.scrollbarSize+(_cf.rownumbers?_cf.rownumberWidth:0))-col.deltaWidth;
  859. if(_de>0){
  860. col.boxWidth=_de;
  861. _db=true;
  862. }
  863. }
  864. });
  865. if(_db){
  866. $(_cd).datagrid("fixColumnSize");
  867. }
  868. };
  869. function _d1(fit){
  870. var _df=dc.header1.add(dc.header2).find(".datagrid-cell-group");
  871. if(_df.length){
  872. _df.each(function(){
  873. $(this)._outerWidth(fit?$(this).parent().width():10);
  874. });
  875. if(fit){
  876. _20(_cd);
  877. }
  878. }
  879. };
  880. function _d6(col){
  881. if(String(col.width||"").indexOf("%")>=0){
  882. return false;
  883. }
  884. if(!col.hidden&&!col.checkbox&&!col.auto&&!col.fixed){
  885. return true;
  886. }
  887. };
  888. };
  889. function _e0(_e1,_e2){
  890. var _e3=$.data(_e1,"datagrid");
  891. var _e4=_e3.options;
  892. var dc=_e3.dc;
  893. var tmp=$("<div class=\"datagrid-cell\" style=\"position:absolute;left:-9999px\"></div>").appendTo("body");
  894. if(_e2){
  895. _1a(_e2);
  896. $(_e1).datagrid("fitColumns");
  897. }else{
  898. var _e5=false;
  899. var _e6=_73(_e1,true).concat(_73(_e1,false));
  900. for(var i=0;i<_e6.length;i++){
  901. var _e2=_e6[i];
  902. var col=_74(_e1,_e2);
  903. if(col.auto){
  904. _1a(_e2);
  905. _e5=true;
  906. }
  907. }
  908. if(_e5){
  909. $(_e1).datagrid("fitColumns");
  910. }
  911. }
  912. tmp.remove();
  913. function _1a(_e7){
  914. var _e8=dc.view.find("div.datagrid-header td[field=\""+_e7+"\"] div.datagrid-cell");
  915. _e8.css("width","");
  916. var col=$(_e1).datagrid("getColumnOption",_e7);
  917. col.width=undefined;
  918. col.boxWidth=undefined;
  919. col.auto=true;
  920. $(_e1).datagrid("fixColumnSize",_e7);
  921. var _e9=Math.max(_ea("header"),_ea("allbody"),_ea("allfooter"))+1;
  922. _e8._outerWidth(_e9-1);
  923. col.width=_e9;
  924. col.boxWidth=parseInt(_e8[0].style.width);
  925. col.deltaWidth=_e9-col.boxWidth;
  926. _e8.css("width","");
  927. $(_e1).datagrid("fixColumnSize",_e7);
  928. _e4.onResizeColumn.call(_e1,_e7,col.width);
  929. function _ea(_eb){
  930. var _ec=0;
  931. if(_eb=="header"){
  932. _ec=_ed(_e8);
  933. }else{
  934. _e4.finder.getTr(_e1,0,_eb).find("td[field=\""+_e7+"\"] div.datagrid-cell").each(function(){
  935. var w=_ed($(this));
  936. if(_ec<w){
  937. _ec=w;
  938. }
  939. });
  940. }
  941. return _ec;
  942. function _ed(_ee){
  943. return _ee.is(":visible")?_ee._outerWidth():tmp.html(_ee.html())._outerWidth();
  944. };
  945. };
  946. };
  947. };
  948. function _ef(_f0,_f1){
  949. var _f2=$.data(_f0,"datagrid");
  950. var _f3=_f2.options;
  951. var dc=_f2.dc;
  952. var _f4=dc.view.find("table.datagrid-btable,table.datagrid-ftable");
  953. _f4.css("table-layout","fixed");
  954. if(_f1){
  955. fix(_f1);
  956. }else{
  957. var ff=_73(_f0,true).concat(_73(_f0,false));
  958. for(var i=0;i<ff.length;i++){
  959. fix(ff[i]);
  960. }
  961. }
  962. _f4.css("table-layout","");
  963. _f5(_f0);
  964. _34(_f0);
  965. _f6(_f0);
  966. function fix(_f7){
  967. var col=_74(_f0,_f7);
  968. if(col.cellClass){
  969. _f2.ss.set("."+col.cellClass,col.boxWidth?col.boxWidth+"px":"auto");
  970. }
  971. };
  972. };
  973. function _f5(_f8,tds){
  974. var dc=$.data(_f8,"datagrid").dc;
  975. tds=tds||dc.view.find("td.datagrid-td-merged");
  976. tds.each(function(){
  977. var td=$(this);
  978. var _f9=td.attr("colspan")||1;
  979. if(_f9>1){
  980. var col=_74(_f8,td.attr("field"));
  981. var _fa=col.boxWidth+col.deltaWidth-1;
  982. for(var i=1;i<_f9;i++){
  983. td=td.next();
  984. col=_74(_f8,td.attr("field"));
  985. _fa+=col.boxWidth+col.deltaWidth;
  986. }
  987. $(this).children("div.datagrid-cell")._outerWidth(_fa);
  988. }
  989. });
  990. };
  991. function _f6(_fb){
  992. var dc=$.data(_fb,"datagrid").dc;
  993. dc.view.find("div.datagrid-editable").each(function(){
  994. var _fc=$(this);
  995. var _fd=_fc.parent().attr("field");
  996. var col=$(_fb).datagrid("getColumnOption",_fd);
  997. _fc._outerWidth(col.boxWidth+col.deltaWidth-1);
  998. var ed=$.data(this,"datagrid.editor");
  999. if(ed.actions.resize){
  1000. ed.actions.resize(ed.target,_fc.width());
  1001. }
  1002. });
  1003. };
  1004. function _74(_fe,_ff){
  1005. function find(_100){
  1006. if(_100){
  1007. for(var i=0;i<_100.length;i++){
  1008. var cc=_100[i];
  1009. for(var j=0;j<cc.length;j++){
  1010. var c=cc[j];
  1011. if(c.field==_ff){
  1012. return c;
  1013. }
  1014. }
  1015. }
  1016. }
  1017. return null;
  1018. };
  1019. var opts=$.data(_fe,"datagrid").options;
  1020. var col=find(opts.columns);
  1021. if(!col){
  1022. col=find(opts.frozenColumns);
  1023. }
  1024. return col;
  1025. };
  1026. function _c7(_101,_102){
  1027. var opts=$.data(_101,"datagrid").options;
  1028. var _103=_102?opts.frozenColumns:opts.columns;
  1029. var aa=[];
  1030. var _104=_105();
  1031. for(var i=0;i<_103.length;i++){
  1032. aa[i]=new Array(_104);
  1033. }
  1034. for(var _106=0;_106<_103.length;_106++){
  1035. $.map(_103[_106],function(col){
  1036. var _107=_108(aa[_106]);
  1037. if(_107>=0){
  1038. var _109=col.field||col.id||"";
  1039. for(var c=0;c<(col.colspan||1);c++){
  1040. for(var r=0;r<(col.rowspan||1);r++){
  1041. aa[_106+r][_107]=_109;
  1042. }
  1043. _107++;
  1044. }
  1045. }
  1046. });
  1047. }
  1048. return aa;
  1049. function _105(){
  1050. var _10a=0;
  1051. $.map(_103[0]||[],function(col){
  1052. _10a+=col.colspan||1;
  1053. });
  1054. return _10a;
  1055. };
  1056. function _108(a){
  1057. for(var i=0;i<a.length;i++){
  1058. if(a[i]==undefined){
  1059. return i;
  1060. }
  1061. }
  1062. return -1;
  1063. };
  1064. };
  1065. function _73(_10b,_10c){
  1066. var aa=_c7(_10b,_10c);
  1067. return aa.length?aa[aa.length-1]:aa;
  1068. };
  1069. function _c0(_10d,data){
  1070. var _10e=$.data(_10d,"datagrid");
  1071. var opts=_10e.options;
  1072. var dc=_10e.dc;
  1073. data=opts.loadFilter.call(_10d,data);
  1074. if($.isArray(data)){
  1075. data={total:data.length,rows:data};
  1076. }
  1077. data.total=parseInt(data.total);
  1078. _10e.data=data;
  1079. if(data.footer){
  1080. _10e.footer=data.footer;
  1081. }
  1082. if(!opts.remoteSort&&opts.sortName){
  1083. var _10f=opts.sortName.split(",");
  1084. var _110=opts.sortOrder.split(",");
  1085. data.rows.sort(function(r1,r2){
  1086. var r=0;
  1087. for(var i=0;i<_10f.length;i++){
  1088. var sn=_10f[i];
  1089. var so=_110[i];
  1090. var col=_74(_10d,sn);
  1091. var _111=col.sorter||function(a,b){
  1092. return a==b?0:(a>b?1:-1);
  1093. };
  1094. r=_111(r1[sn],r2[sn])*(so=="asc"?1:-1);
  1095. if(r!=0){
  1096. return r;
  1097. }
  1098. }
  1099. return r;
  1100. });
  1101. }
  1102. if(opts.view.onBeforeRender){
  1103. opts.view.onBeforeRender.call(opts.view,_10d,data.rows);
  1104. }
  1105. opts.view.render.call(opts.view,_10d,dc.body2,false);
  1106. opts.view.render.call(opts.view,_10d,dc.body1,true);
  1107. if(opts.showFooter){
  1108. opts.view.renderFooter.call(opts.view,_10d,dc.footer2,false);
  1109. opts.view.renderFooter.call(opts.view,_10d,dc.footer1,true);
  1110. }
  1111. if(opts.view.onAfterRender){
  1112. opts.view.onAfterRender.call(opts.view,_10d);
  1113. }
  1114. _10e.ss.clean();
  1115. var _112=$(_10d).datagrid("getPager");
  1116. if(_112.length){
  1117. var _113=_112.pagination("options");
  1118. if(_113.total!=data.total){
  1119. _112.pagination("refresh",{total:data.total});
  1120. if(opts.pageNumber!=_113.pageNumber&&_113.pageNumber>0){
  1121. opts.pageNumber=_113.pageNumber;
  1122. _bf(_10d);
  1123. }
  1124. }
  1125. }
  1126. _34(_10d);
  1127. dc.body2.triggerHandler("scroll");
  1128. $(_10d).datagrid("setSelectionState");
  1129. $(_10d).datagrid("autoSizeColumn");
  1130. opts.onLoadSuccess.call(_10d,data);
  1131. };
  1132. function _114(_115){
  1133. var _116=$.data(_115,"datagrid");
  1134. var opts=_116.options;
  1135. var dc=_116.dc;
  1136. dc.header1.add(dc.header2).find("input[type=checkbox]")._propAttr("checked",false);
  1137. if(opts.idField){
  1138. var _117=$.data(_115,"treegrid")?true:false;
  1139. var _118=opts.onSelect;
  1140. var _119=opts.onCheck;
  1141. opts.onSelect=opts.onCheck=function(){
  1142. };
  1143. var rows=opts.finder.getRows(_115);
  1144. for(var i=0;i<rows.length;i++){
  1145. var row=rows[i];
  1146. var _11a=_117?row[opts.idField]:$(_115).datagrid("getRowIndex",row[opts.idField]);
  1147. if(_11b(_116.selectedRows,row)){
  1148. _a5(_115,_11a,true,true);
  1149. }
  1150. if(_11b(_116.checkedRows,row)){
  1151. _a2(_115,_11a,true);
  1152. }
  1153. }
  1154. opts.onSelect=_118;
  1155. opts.onCheck=_119;
  1156. }
  1157. function _11b(a,r){
  1158. for(var i=0;i<a.length;i++){
  1159. if(a[i][opts.idField]==r[opts.idField]){
  1160. a[i]=r;
  1161. return true;
  1162. }
  1163. }
  1164. return false;
  1165. };
  1166. };
  1167. function _11c(_11d,row){
  1168. var _11e=$.data(_11d,"datagrid");
  1169. var opts=_11e.options;
  1170. var rows=_11e.data.rows;
  1171. if(typeof row=="object"){
  1172. return _2(rows,row);
  1173. }else{
  1174. for(var i=0;i<rows.length;i++){
  1175. if(rows[i][opts.idField]==row){
  1176. return i;
  1177. }
  1178. }
  1179. return -1;
  1180. }
  1181. };
  1182. function _11f(_120){
  1183. var _121=$.data(_120,"datagrid");
  1184. var opts=_121.options;
  1185. var data=_121.data;
  1186. if(opts.idField){
  1187. return _121.selectedRows;
  1188. }else{
  1189. var rows=[];
  1190. opts.finder.getTr(_120,"","selected",2).each(function(){
  1191. rows.push(opts.finder.getRow(_120,$(this)));
  1192. });
  1193. return rows;
  1194. }
  1195. };
  1196. function _122(_123){
  1197. var _124=$.data(_123,"datagrid");
  1198. var opts=_124.options;
  1199. if(opts.idField){
  1200. return _124.checkedRows;
  1201. }else{
  1202. var rows=[];
  1203. opts.finder.getTr(_123,"","checked",2).each(function(){
  1204. rows.push(opts.finder.getRow(_123,$(this)));
  1205. });
  1206. return rows;
  1207. }
  1208. };
  1209. function _125(_126,_127){
  1210. var _128=$.data(_126,"datagrid");
  1211. var dc=_128.dc;
  1212. var opts=_128.options;
  1213. var tr=opts.finder.getTr(_126,_127);
  1214. if(tr.length){
  1215. if(tr.closest("table").hasClass("datagrid-btable-frozen")){
  1216. return;
  1217. }
  1218. var _129=dc.view2.children("div.datagrid-header")._outerHeight();
  1219. var _12a=dc.body2;
  1220. var _12b=opts.scrollbarSize;
  1221. if(_12a[0].offsetHeight&&_12a[0].clientHeight&&_12a[0].offsetHeight<=_12a[0].clientHeight){
  1222. _12b=0;
  1223. }
  1224. var _12c=_12a.outerHeight(true)-_12a.outerHeight();
  1225. var top=tr.position().top-_129-_12c;
  1226. if(top<0){
  1227. _12a.scrollTop(_12a.scrollTop()+top);
  1228. }else{
  1229. if(top+tr._outerHeight()>_12a.height()-_12b){
  1230. _12a.scrollTop(_12a.scrollTop()+top+tr._outerHeight()-_12a.height()+_12b);
  1231. }
  1232. }
  1233. }
  1234. };
  1235. function _9c(_12d,_12e){
  1236. var _12f=$.data(_12d,"datagrid");
  1237. var opts=_12f.options;
  1238. opts.finder.getTr(_12d,_12f.highlightIndex).removeClass("datagrid-row-over");
  1239. opts.finder.getTr(_12d,_12e).addClass("datagrid-row-over");
  1240. _12f.highlightIndex=_12e;
  1241. };
  1242. function _a5(_130,_131,_132,_133){
  1243. var _134=$.data(_130,"datagrid");
  1244. var opts=_134.options;
  1245. var row=opts.finder.getRow(_130,_131);
  1246. if(!row){
  1247. return;
  1248. }
  1249. if(opts.onBeforeSelect.apply(_130,_5(_130,[_131,row]))==false){
  1250. return;
  1251. }
  1252. if(opts.singleSelect){
  1253. _135(_130,true);
  1254. _134.selectedRows=[];
  1255. }
  1256. if(!_132&&opts.checkOnSelect){
  1257. _a2(_130,_131,true);
  1258. }
  1259. if(opts.idField){
  1260. _4(_134.selectedRows,opts.idField,row);
  1261. }
  1262. opts.finder.getTr(_130,_131).addClass("datagrid-row-selected");
  1263. opts.onSelect.apply(_130,_5(_130,[_131,row]));
  1264. if(!_133&&opts.scrollOnSelect){
  1265. _125(_130,_131);
  1266. }
  1267. };
  1268. function _a6(_136,_137,_138){
  1269. var _139=$.data(_136,"datagrid");
  1270. var dc=_139.dc;
  1271. var opts=_139.options;
  1272. var row=opts.finder.getRow(_136,_137);
  1273. if(!row){
  1274. return;
  1275. }
  1276. if(opts.onBeforeUnselect.apply(_136,_5(_136,[_137,row]))==false){
  1277. return;
  1278. }
  1279. if(!_138&&opts.checkOnSelect){
  1280. _a3(_136,_137,true);
  1281. }
  1282. opts.finder.getTr(_136,_137).removeClass("datagrid-row-selected");
  1283. if(opts.idField){
  1284. _3(_139.selectedRows,opts.idField,row[opts.idField]);
  1285. }
  1286. opts.onUnselect.apply(_136,_5(_136,[_137,row]));
  1287. };
  1288. function _13a(_13b,_13c){
  1289. var _13d=$.data(_13b,"datagrid");
  1290. var opts=_13d.options;
  1291. var rows=opts.finder.getRows(_13b);
  1292. var _13e=$.data(_13b,"datagrid").selectedRows;
  1293. if(!_13c&&opts.checkOnSelect){
  1294. _89(_13b,true);
  1295. }
  1296. opts.finder.getTr(_13b,"","allbody").addClass("datagrid-row-selected");
  1297. if(opts.idField){
  1298. for(var _13f=0;_13f<rows.length;_13f++){
  1299. _4(_13e,opts.idField,rows[_13f]);
  1300. }
  1301. }
  1302. opts.onSelectAll.call(_13b,rows);
  1303. };
  1304. function _135(_140,_141){
  1305. var _142=$.data(_140,"datagrid");
  1306. var opts=_142.options;
  1307. var rows=opts.finder.getRows(_140);
  1308. var _143=$.data(_140,"datagrid").selectedRows;
  1309. if(!_141&&opts.checkOnSelect){
  1310. _8a(_140,true);
  1311. }
  1312. opts.finder.getTr(_140,"","selected").removeClass("datagrid-row-selected");
  1313. if(opts.idField){
  1314. for(var _144=0;_144<rows.length;_144++){
  1315. _3(_143,opts.idField,rows[_144][opts.idField]);
  1316. }
  1317. }
  1318. opts.onUnselectAll.call(_140,rows);
  1319. };
  1320. function _a2(_145,_146,_147){
  1321. var _148=$.data(_145,"datagrid");
  1322. var opts=_148.options;
  1323. var row=opts.finder.getRow(_145,_146);
  1324. if(!row){
  1325. return;
  1326. }
  1327. if(opts.onBeforeCheck.apply(_145,_5(_145,[_146,row]))==false){
  1328. return;
  1329. }
  1330. if(opts.singleSelect&&opts.selectOnCheck){
  1331. _8a(_145,true);
  1332. _148.checkedRows=[];
  1333. }
  1334. if(!_147&&opts.selectOnCheck){
  1335. _a5(_145,_146,true);
  1336. }
  1337. var tr=opts.finder.getTr(_145,_146).addClass("datagrid-row-checked");
  1338. tr.find("div.datagrid-cell-check input[type=checkbox]")._propAttr("checked",true);
  1339. tr=opts.finder.getTr(_145,"","checked",2);
  1340. if(tr.length==opts.finder.getRows(_145).length){
  1341. var dc=_148.dc;
  1342. dc.header1.add(dc.header2).find("input[type=checkbox]")._propAttr("checked",true);
  1343. }
  1344. if(opts.idField){
  1345. _4(_148.checkedRows,opts.idField,row);
  1346. }
  1347. opts.onCheck.apply(_145,_5(_145,[_146,row]));
  1348. };
  1349. function _a3(_149,_14a,_14b){
  1350. var _14c=$.data(_149,"datagrid");
  1351. var opts=_14c.options;
  1352. var row=opts.finder.getRow(_149,_14a);
  1353. if(!row){
  1354. return;
  1355. }
  1356. if(opts.onBeforeUncheck.apply(_149,_5(_149,[_14a,row]))==false){
  1357. return;
  1358. }
  1359. if(!_14b&&opts.selectOnCheck){
  1360. _a6(_149,_14a,true);
  1361. }
  1362. var tr=opts.finder.getTr(_149,_14a).removeClass("datagrid-row-checked");
  1363. tr.find("div.datagrid-cell-check input[type=checkbox]")._propAttr("checked",false);
  1364. var dc=_14c.dc;
  1365. var _14d=dc.header1.add(dc.header2);
  1366. _14d.find("input[type=checkbox]")._propAttr("checked",false);
  1367. if(opts.idField){
  1368. _3(_14c.checkedRows,opts.idField,row[opts.idField]);
  1369. }
  1370. opts.onUncheck.apply(_149,_5(_149,[_14a,row]));
  1371. };
  1372. function _89(_14e,_14f){
  1373. var _150=$.data(_14e,"datagrid");
  1374. var opts=_150.options;
  1375. var rows=opts.finder.getRows(_14e);
  1376. if(!_14f&&opts.selectOnCheck){
  1377. _13a(_14e,true);
  1378. }
  1379. var dc=_150.dc;
  1380. var hck=dc.header1.add(dc.header2).find("input[type=checkbox]");
  1381. var bck=opts.finder.getTr(_14e,"","allbody").addClass("datagrid-row-checked").find("div.datagrid-cell-check input[type=checkbox]");
  1382. hck.add(bck)._propAttr("checked",true);
  1383. if(opts.idField){
  1384. for(var i=0;i<rows.length;i++){
  1385. _4(_150.checkedRows,opts.idField,rows[i]);
  1386. }
  1387. }
  1388. opts.onCheckAll.call(_14e,rows);
  1389. };
  1390. function _8a(_151,_152){
  1391. var _153=$.data(_151,"datagrid");
  1392. var opts=_153.options;
  1393. var rows=opts.finder.getRows(_151);
  1394. if(!_152&&opts.selectOnCheck){
  1395. _135(_151,true);
  1396. }
  1397. var dc=_153.dc;
  1398. var hck=dc.header1.add(dc.header2).find("input[type=checkbox]");
  1399. var bck=opts.finder.getTr(_151,"","checked").removeClass("datagrid-row-checked").find("div.datagrid-cell-check input[type=checkbox]");
  1400. hck.add(bck)._propAttr("checked",false);
  1401. if(opts.idField){
  1402. for(var i=0;i<rows.length;i++){
  1403. _3(_153.checkedRows,opts.idField,rows[i][opts.idField]);
  1404. }
  1405. }
  1406. opts.onUncheckAll.call(_151,rows);
  1407. };
  1408. function _154(_155,_156){
  1409. var opts=$.data(_155,"datagrid").options;
  1410. var tr=opts.finder.getTr(_155,_156);
  1411. var row=opts.finder.getRow(_155,_156);
  1412. if(tr.hasClass("datagrid-row-editing")){
  1413. return;
  1414. }
  1415. if(opts.onBeforeEdit.apply(_155,_5(_155,[_156,row]))==false){
  1416. return;
  1417. }
  1418. tr.addClass("datagrid-row-editing");
  1419. _157(_155,_156);
  1420. _f6(_155);
  1421. tr.find("div.datagrid-editable").each(function(){
  1422. var _158=$(this).parent().attr("field");
  1423. var ed=$.data(this,"datagrid.editor");
  1424. ed.actions.setValue(ed.target,row[_158]);
  1425. });
  1426. _159(_155,_156);
  1427. opts.onBeginEdit.apply(_155,_5(_155,[_156,row]));
  1428. };
  1429. function _15a(_15b,_15c,_15d){
  1430. var _15e=$.data(_15b,"datagrid");
  1431. var opts=_15e.options;
  1432. var _15f=_15e.updatedRows;
  1433. var _160=_15e.insertedRows;
  1434. var tr=opts.finder.getTr(_15b,_15c);
  1435. var row=opts.finder.getRow(_15b,_15c);
  1436. if(!tr.hasClass("datagrid-row-editing")){
  1437. return;
  1438. }
  1439. if(!_15d){
  1440. if(!_159(_15b,_15c)){
  1441. return;
  1442. }
  1443. var _161=false;
  1444. var _162={};
  1445. tr.find("div.datagrid-editable").each(function(){
  1446. var _163=$(this).parent().attr("field");
  1447. var ed=$.data(this,"datagrid.editor");
  1448. var t=$(ed.target);
  1449. var _164=t.data("textbox")?t.textbox("textbox"):t;
  1450. if(_164.is(":focus")){
  1451. _164.triggerHandler("blur");
  1452. }
  1453. var _165=ed.actions.getValue(ed.target);
  1454. if(row[_163]!==_165){
  1455. row[_163]=_165;
  1456. _161=true;
  1457. _162[_163]=_165;
  1458. }
  1459. });
  1460. if(_161){
  1461. if(_2(_160,row)==-1){
  1462. if(_2(_15f,row)==-1){
  1463. _15f.push(row);
  1464. }
  1465. }
  1466. }
  1467. opts.onEndEdit.apply(_15b,_5(_15b,[_15c,row,_162]));
  1468. }
  1469. tr.removeClass("datagrid-row-editing");
  1470. _166(_15b,_15c);
  1471. $(_15b).datagrid("refreshRow",_15c);
  1472. if(!_15d){
  1473. opts.onAfterEdit.apply(_15b,_5(_15b,[_15c,row,_162]));
  1474. }else{
  1475. opts.onCancelEdit.apply(_15b,_5(_15b,[_15c,row]));
  1476. }
  1477. };
  1478. function _167(_168,_169){
  1479. var opts=$.data(_168,"datagrid").options;
  1480. var tr=opts.finder.getTr(_168,_169);
  1481. var _16a=[];
  1482. tr.children("td").each(function(){
  1483. var cell=$(this).find("div.datagrid-editable");
  1484. if(cell.length){
  1485. var ed=$.data(cell[0],"datagrid.editor");
  1486. _16a.push(ed);
  1487. }
  1488. });
  1489. return _16a;
  1490. };
  1491. function _16b(_16c,_16d){
  1492. var _16e=_167(_16c,_16d.index!=undefined?_16d.index:_16d.id);
  1493. for(var i=0;i<_16e.length;i++){
  1494. if(_16e[i].field==_16d.field){
  1495. return _16e[i];
  1496. }
  1497. }
  1498. return null;
  1499. };
  1500. function _157(_16f,_170){
  1501. var opts=$.data(_16f,"datagrid").options;
  1502. var tr=opts.finder.getTr(_16f,_170);
  1503. tr.children("td").each(function(){
  1504. var cell=$(this).find("div.datagrid-cell");
  1505. var _171=$(this).attr("field");
  1506. var col=_74(_16f,_171);
  1507. if(col&&col.editor){
  1508. var _172,_173;
  1509. if(typeof col.editor=="string"){
  1510. _172=col.editor;
  1511. }else{
  1512. _172=col.editor.type;
  1513. _173=col.editor.options;
  1514. }
  1515. var _174=opts.editors[_172];
  1516. if(_174){
  1517. var _175=cell.html();
  1518. var _176=cell._outerWidth();
  1519. cell.addClass("datagrid-editable");
  1520. cell._outerWidth(_176);
  1521. cell.html("<table border=\"0\" cellspacing=\"0\" cellpadding=\"1\"><tr><td></td></tr></table>");
  1522. cell.children("table").bind("click dblclick contextmenu",function(e){
  1523. e.stopPropagation();
  1524. });
  1525. $.data(cell[0],"datagrid.editor",{actions:_174,target:_174.init(cell.find("td"),$.extend({height:opts.editorHeight},_173)),field:_171,type:_172,oldHtml:_175});
  1526. }
  1527. }
  1528. });
  1529. _34(_16f,_170,true);
  1530. };
  1531. function _166(_177,_178){
  1532. var opts=$.data(_177,"datagrid").options;
  1533. var tr=opts.finder.getTr(_177,_178);
  1534. tr.children("td").each(function(){
  1535. var cell=$(this).find("div.datagrid-editable");
  1536. if(cell.length){
  1537. var ed=$.data(cell[0],"datagrid.editor");
  1538. if(ed.actions.destroy){
  1539. ed.actions.destroy(ed.target);
  1540. }
  1541. cell.html(ed.oldHtml);
  1542. $.removeData(cell[0],"datagrid.editor");
  1543. cell.removeClass("datagrid-editable");
  1544. cell.css("width","");
  1545. }
  1546. });
  1547. };
  1548. function _159(_179,_17a){
  1549. var tr=$.data(_179,"datagrid").options.finder.getTr(_179,_17a);
  1550. if(!tr.hasClass("datagrid-row-editing")){
  1551. return true;
  1552. }
  1553. var vbox=tr.find(".validatebox-text");
  1554. vbox.validatebox("validate");
  1555. vbox.trigger("mouseleave");
  1556. var _17b=tr.find(".validatebox-invalid");
  1557. return _17b.length==0;
  1558. };
  1559. function _17c(_17d,_17e){
  1560. var _17f=$.data(_17d,"datagrid").insertedRows;
  1561. var _180=$.data(_17d,"datagrid").deletedRows;
  1562. var _181=$.data(_17d,"datagrid").updatedRows;
  1563. if(!_17e){
  1564. var rows=[];
  1565. rows=rows.concat(_17f);
  1566. rows=rows.concat(_180);
  1567. rows=rows.concat(_181);
  1568. return rows;
  1569. }else{
  1570. if(_17e=="inserted"){
  1571. return _17f;
  1572. }else{
  1573. if(_17e=="deleted"){
  1574. return _180;
  1575. }else{
  1576. if(_17e=="updated"){
  1577. return _181;
  1578. }
  1579. }
  1580. }
  1581. }
  1582. return [];
  1583. };
  1584. function _182(_183,_184){
  1585. var _185=$.data(_183,"datagrid");
  1586. var opts=_185.options;
  1587. var data=_185.data;
  1588. var _186=_185.insertedRows;
  1589. var _187=_185.deletedRows;
  1590. $(_183).datagrid("cancelEdit",_184);
  1591. var row=opts.finder.getRow(_183,_184);
  1592. if(_2(_186,row)>=0){
  1593. _3(_186,row);
  1594. }else{
  1595. _187.push(row);
  1596. }
  1597. _3(_185.selectedRows,opts.idField,row[opts.idField]);
  1598. _3(_185.checkedRows,opts.idField,row[opts.idField]);
  1599. opts.view.deleteRow.call(opts.view,_183,_184);
  1600. if(opts.height=="auto"){
  1601. _34(_183);
  1602. }
  1603. $(_183).datagrid("getPager").pagination("refresh",{total:data.total});
  1604. };
  1605. function _188(_189,_18a){
  1606. var data=$.data(_189,"datagrid").data;
  1607. var view=$.data(_189,"datagrid").options.view;
  1608. var _18b=$.data(_189,"datagrid").insertedRows;
  1609. view.insertRow.call(view,_189,_18a.index,_18a.row);
  1610. _18b.push(_18a.row);
  1611. $(_189).datagrid("getPager").pagination("refresh",{total:data.total});
  1612. };
  1613. function _18c(_18d,row){
  1614. var data=$.data(_18d,"datagrid").data;
  1615. var view=$.data(_18d,"datagrid").options.view;
  1616. var _18e=$.data(_18d,"datagrid").insertedRows;
  1617. view.insertRow.call(view,_18d,null,row);
  1618. _18e.push(row);
  1619. $(_18d).datagrid("getPager").pagination("refresh",{total:data.total});
  1620. };
  1621. function _18f(_190,_191){
  1622. var _192=$.data(_190,"datagrid");
  1623. var opts=_192.options;
  1624. var row=opts.finder.getRow(_190,_191.index);
  1625. var _193=false;
  1626. _191.row=_191.row||{};
  1627. for(var _194 in _191.row){
  1628. if(row[_194]!==_191.row[_194]){
  1629. _193=true;
  1630. break;
  1631. }
  1632. }
  1633. if(_193){
  1634. if(_2(_192.insertedRows,row)==-1){
  1635. if(_2(_192.updatedRows,row)==-1){
  1636. _192.updatedRows.push(row);
  1637. }
  1638. }
  1639. opts.view.updateRow.call(opts.view,_190,_191.index,_191.row);
  1640. }
  1641. };
  1642. function _195(_196){
  1643. var _197=$.data(_196,"datagrid");
  1644. var data=_197.data;
  1645. var rows=data.rows;
  1646. var _198=[];
  1647. for(var i=0;i<rows.length;i++){
  1648. _198.push($.extend({},rows[i]));
  1649. }
  1650. _197.originalRows=_198;
  1651. _197.updatedRows=[];
  1652. _197.insertedRows=[];
  1653. _197.deletedRows=[];
  1654. };
  1655. function _199(_19a){
  1656. var data=$.data(_19a,"datagrid").data;
  1657. var ok=true;
  1658. for(var i=0,len=data.rows.length;i<len;i++){
  1659. if(_159(_19a,i)){
  1660. $(_19a).datagrid("endEdit",i);
  1661. }else{
  1662. ok=false;
  1663. }
  1664. }
  1665. if(ok){
  1666. _195(_19a);
  1667. }
  1668. };
  1669. function _19b(_19c){
  1670. var _19d=$.data(_19c,"datagrid");
  1671. var opts=_19d.options;
  1672. var _19e=_19d.originalRows;
  1673. var _19f=_19d.insertedRows;
  1674. var _1a0=_19d.deletedRows;
  1675. var _1a1=_19d.selectedRows;
  1676. var _1a2=_19d.checkedRows;
  1677. var data=_19d.data;
  1678. function _1a3(a){
  1679. var ids=[];
  1680. for(var i=0;i<a.length;i++){
  1681. ids.push(a[i][opts.idField]);
  1682. }
  1683. return ids;
  1684. };
  1685. function _1a4(ids,_1a5){
  1686. for(var i=0;i<ids.length;i++){
  1687. var _1a6=_11c(_19c,ids[i]);
  1688. if(_1a6>=0){
  1689. (_1a5=="s"?_a5:_a2)(_19c,_1a6,true);
  1690. }
  1691. }
  1692. };
  1693. for(var i=0;i<data.rows.length;i++){
  1694. $(_19c).datagrid("cancelEdit",i);
  1695. }
  1696. var _1a7=_1a3(_1a1);
  1697. var _1a8=_1a3(_1a2);
  1698. _1a1.splice(0,_1a1.length);
  1699. _1a2.splice(0,_1a2.length);
  1700. data.total+=_1a0.length-_19f.length;
  1701. data.rows=_19e;
  1702. _c0(_19c,data);
  1703. _1a4(_1a7,"s");
  1704. _1a4(_1a8,"c");
  1705. _195(_19c);
  1706. };
  1707. function _bf(_1a9,_1aa,cb){
  1708. var opts=$.data(_1a9,"datagrid").options;
  1709. if(_1aa){
  1710. opts.queryParams=_1aa;
  1711. }
  1712. var _1ab=$.extend({},opts.queryParams);
  1713. if(opts.pagination){
  1714. $.extend(_1ab,{page:opts.pageNumber||1,rows:opts.pageSize});
  1715. }
  1716. if(opts.sortName){
  1717. $.extend(_1ab,{sort:opts.sortName,order:opts.sortOrder});
  1718. }
  1719. if(opts.onBeforeLoad.call(_1a9,_1ab)==false){
  1720. return;
  1721. }
  1722. $(_1a9).datagrid("loading");
  1723. var _1ac=opts.loader.call(_1a9,_1ab,function(data){
  1724. $(_1a9).datagrid("loaded");
  1725. $(_1a9).datagrid("loadData",data);
  1726. if(cb){
  1727. cb();
  1728. }
  1729. },function(){
  1730. $(_1a9).datagrid("loaded");
  1731. opts.onLoadError.apply(_1a9,arguments);
  1732. });
  1733. if(_1ac==false){
  1734. $(_1a9).datagrid("loaded");
  1735. }
  1736. };
  1737. function _1ad(_1ae,_1af){
  1738. var opts=$.data(_1ae,"datagrid").options;
  1739. _1af.type=_1af.type||"body";
  1740. _1af.rowspan=_1af.rowspan||1;
  1741. _1af.colspan=_1af.colspan||1;
  1742. if(_1af.rowspan==1&&_1af.colspan==1){
  1743. return;
  1744. }
  1745. var tr=opts.finder.getTr(_1ae,(_1af.index!=undefined?_1af.index:_1af.id),_1af.type);
  1746. if(!tr.length){
  1747. return;
  1748. }
  1749. var td=tr.find("td[field=\""+_1af.field+"\"]");
  1750. td.attr("rowspan",_1af.rowspan).attr("colspan",_1af.colspan);
  1751. td.addClass("datagrid-td-merged");
  1752. _1b0(td.next(),_1af.colspan-1);
  1753. for(var i=1;i<_1af.rowspan;i++){
  1754. tr=tr.next();
  1755. if(!tr.length){
  1756. break;
  1757. }
  1758. _1b0(tr.find("td[field=\""+_1af.field+"\"]"),_1af.colspan);
  1759. }
  1760. _f5(_1ae,td);
  1761. function _1b0(td,_1b1){
  1762. for(var i=0;i<_1b1;i++){
  1763. td.hide();
  1764. td=td.next();
  1765. }
  1766. };
  1767. };
  1768. $.fn.datagrid=function(_1b2,_1b3){
  1769. if(typeof _1b2=="string"){
  1770. return $.fn.datagrid.methods[_1b2](this,_1b3);
  1771. }
  1772. _1b2=_1b2||{};
  1773. return this.each(function(){
  1774. var _1b4=$.data(this,"datagrid");
  1775. var opts;
  1776. if(_1b4){
  1777. opts=$.extend(_1b4.options,_1b2);
  1778. _1b4.options=opts;
  1779. }else{
  1780. opts=$.extend({},$.extend({},$.fn.datagrid.defaults,{queryParams:{}}),$.fn.datagrid.parseOptions(this),_1b2);
  1781. $(this).css("width","").css("height","");
  1782. var _1b5=_4d(this,opts.rownumbers);
  1783. if(!opts.columns){
  1784. opts.columns=_1b5.columns;
  1785. }
  1786. if(!opts.frozenColumns){
  1787. opts.frozenColumns=_1b5.frozenColumns;
  1788. }
  1789. opts.columns=$.extend(true,[],opts.columns);
  1790. opts.frozenColumns=$.extend(true,[],opts.frozenColumns);
  1791. opts.view=$.extend({},opts.view);
  1792. $.data(this,"datagrid",{options:opts,panel:_1b5.panel,dc:_1b5.dc,ss:null,selectedRows:[],checkedRows:[],data:{total:0,rows:[]},originalRows:[],updatedRows:[],insertedRows:[],deletedRows:[]});
  1793. }
  1794. _58(this);
  1795. _75(this);
  1796. _1a(this);
  1797. if(opts.data){
  1798. $(this).datagrid("loadData",opts.data);
  1799. }else{
  1800. var data=$.fn.datagrid.parseData(this);
  1801. if(data.total>0){
  1802. $(this).datagrid("loadData",data);
  1803. }else{
  1804. opts.view.setEmptyMsg(this);
  1805. $(this).datagrid("autoSizeColumn");
  1806. }
  1807. }
  1808. _bf(this);
  1809. });
  1810. };
  1811. function _1b6(_1b7){
  1812. var _1b8={};
  1813. $.map(_1b7,function(name){
  1814. _1b8[name]=_1b9(name);
  1815. });
  1816. return _1b8;
  1817. function _1b9(name){
  1818. function isA(_1ba){
  1819. return $.data($(_1ba)[0],name)!=undefined;
  1820. };
  1821. return {init:function(_1bb,_1bc){
  1822. var _1bd=$("<input type=\"text\" class=\"datagrid-editable-input\">").appendTo(_1bb);
  1823. if(_1bd[name]&&name!="text"){
  1824. return _1bd[name](_1bc);
  1825. }else{
  1826. return _1bd;
  1827. }
  1828. },destroy:function(_1be){
  1829. if(isA(_1be,name)){
  1830. $(_1be)[name]("destroy");
  1831. }
  1832. },getValue:function(_1bf){
  1833. if(isA(_1bf,name)){
  1834. var opts=$(_1bf)[name]("options");
  1835. if(opts.multiple){
  1836. return $(_1bf)[name]("getValues").join(opts.separator);
  1837. }else{
  1838. return $(_1bf)[name]("getValue");
  1839. }
  1840. }else{
  1841. return $(_1bf).val();
  1842. }
  1843. },setValue:function(_1c0,_1c1){
  1844. if(isA(_1c0,name)){
  1845. var opts=$(_1c0)[name]("options");
  1846. if(opts.multiple){
  1847. if(_1c1){
  1848. $(_1c0)[name]("setValues",_1c1.split(opts.separator));
  1849. }else{
  1850. $(_1c0)[name]("clear");
  1851. }
  1852. }else{
  1853. $(_1c0)[name]("setValue",_1c1);
  1854. }
  1855. }else{
  1856. $(_1c0).val(_1c1);
  1857. }
  1858. },resize:function(_1c2,_1c3){
  1859. if(isA(_1c2,name)){
  1860. $(_1c2)[name]("resize",_1c3);
  1861. }else{
  1862. $(_1c2)._size({width:_1c3,height:$.fn.datagrid.defaults.editorHeight});
  1863. }
  1864. }};
  1865. };
  1866. };
  1867. var _1c4=$.extend({},_1b6(["text","textbox","passwordbox","filebox","numberbox","numberspinner","combobox","combotree","combogrid","combotreegrid","datebox","datetimebox","timespinner","datetimespinner"]),{textarea:{init:function(_1c5,_1c6){
  1868. var _1c7=$("<textarea class=\"datagrid-editable-input\"></textarea>").appendTo(_1c5);
  1869. _1c7.css("vertical-align","middle")._outerHeight(_1c6.height);
  1870. return _1c7;
  1871. },getValue:function(_1c8){
  1872. return $(_1c8).val();
  1873. },setValue:function(_1c9,_1ca){
  1874. $(_1c9).val(_1ca);
  1875. },resize:function(_1cb,_1cc){
  1876. $(_1cb)._outerWidth(_1cc);
  1877. }},checkbox:{init:function(_1cd,_1ce){
  1878. var _1cf=$("<input type=\"checkbox\">").appendTo(_1cd);
  1879. _1cf.val(_1ce.on);
  1880. _1cf.attr("offval",_1ce.off);
  1881. return _1cf;
  1882. },getValue:function(_1d0){
  1883. if($(_1d0).is(":checked")){
  1884. return $(_1d0).val();
  1885. }else{
  1886. return $(_1d0).attr("offval");
  1887. }
  1888. },setValue:function(_1d1,_1d2){
  1889. var _1d3=false;
  1890. if($(_1d1).val()==_1d2){
  1891. _1d3=true;
  1892. }
  1893. $(_1d1)._propAttr("checked",_1d3);
  1894. }},validatebox:{init:function(_1d4,_1d5){
  1895. var _1d6=$("<input type=\"text\" class=\"datagrid-editable-input\">").appendTo(_1d4);
  1896. _1d6.validatebox(_1d5);
  1897. return _1d6;
  1898. },destroy:function(_1d7){
  1899. $(_1d7).validatebox("destroy");
  1900. },getValue:function(_1d8){
  1901. return $(_1d8).val();
  1902. },setValue:function(_1d9,_1da){
  1903. $(_1d9).val(_1da);
  1904. },resize:function(_1db,_1dc){
  1905. $(_1db)._outerWidth(_1dc)._outerHeight($.fn.datagrid.defaults.editorHeight);
  1906. }}});
  1907. $.fn.datagrid.methods={options:function(jq){
  1908. var _1dd=$.data(jq[0],"datagrid").options;
  1909. var _1de=$.data(jq[0],"datagrid").panel.panel("options");
  1910. var opts=$.extend(_1dd,{width:_1de.width,height:_1de.height,closed:_1de.closed,collapsed:_1de.collapsed,minimized:_1de.minimized,maximized:_1de.maximized});
  1911. return opts;
  1912. },setSelectionState:function(jq){
  1913. return jq.each(function(){
  1914. _114(this);
  1915. });
  1916. },createStyleSheet:function(jq){
  1917. return _7(jq[0]);
  1918. },getPanel:function(jq){
  1919. return $.data(jq[0],"datagrid").panel;
  1920. },getPager:function(jq){
  1921. return $.data(jq[0],"datagrid").panel.children("div.datagrid-pager");
  1922. },getColumnFields:function(jq,_1df){
  1923. return _73(jq[0],_1df);
  1924. },getColumnOption:function(jq,_1e0){
  1925. return _74(jq[0],_1e0);
  1926. },resize:function(jq,_1e1){
  1927. return jq.each(function(){
  1928. _1a(this,_1e1);
  1929. });
  1930. },load:function(jq,_1e2){
  1931. return jq.each(function(){
  1932. var opts=$(this).datagrid("options");
  1933. if(typeof _1e2=="string"){
  1934. opts.url=_1e2;
  1935. _1e2=null;
  1936. }
  1937. opts.pageNumber=1;
  1938. var _1e3=$(this).datagrid("getPager");
  1939. _1e3.pagination("refresh",{pageNumber:1});
  1940. _bf(this,_1e2);
  1941. });
  1942. },reload:function(jq,_1e4){
  1943. return jq.each(function(){
  1944. var opts=$(this).datagrid("options");
  1945. if(typeof _1e4=="string"){
  1946. opts.url=_1e4;
  1947. _1e4=null;
  1948. }
  1949. _bf(this,_1e4);
  1950. });
  1951. },reloadFooter:function(jq,_1e5){
  1952. return jq.each(function(){
  1953. var opts=$.data(this,"datagrid").options;
  1954. var dc=$.data(this,"datagrid").dc;
  1955. if(_1e5){
  1956. $.data(this,"datagrid").footer=_1e5;
  1957. }
  1958. if(opts.showFooter){
  1959. opts.view.renderFooter.call(opts.view,this,dc.footer2,false);
  1960. opts.view.renderFooter.call(opts.view,this,dc.footer1,true);
  1961. if(opts.view.onAfterRender){
  1962. opts.view.onAfterRender.call(opts.view,this);
  1963. }
  1964. $(this).datagrid("fixRowHeight");
  1965. }
  1966. });
  1967. },loading:function(jq){
  1968. return jq.each(function(){
  1969. var opts=$.data(this,"datagrid").options;
  1970. $(this).datagrid("getPager").pagination("loading");
  1971. if(opts.loadMsg){
  1972. var _1e6=$(this).datagrid("getPanel");
  1973. if(!_1e6.children("div.datagrid-mask").length){
  1974. $("<div class=\"datagrid-mask\" style=\"display:block\"></div>").appendTo(_1e6);
  1975. var msg=$("<div class=\"datagrid-mask-msg\" style=\"display:block;left:50%\"></div>").html(opts.loadMsg).appendTo(_1e6);
  1976. msg._outerHeight(40);
  1977. msg.css({marginLeft:(-msg.outerWidth()/2),lineHeight:(msg.height()+"px")});
  1978. }
  1979. }
  1980. });
  1981. },loaded:function(jq){
  1982. return jq.each(function(){
  1983. $(this).datagrid("getPager").pagination("loaded");
  1984. var _1e7=$(this).datagrid("getPanel");
  1985. _1e7.children("div.datagrid-mask-msg").remove();
  1986. _1e7.children("div.datagrid-mask").remove();
  1987. });
  1988. },fitColumns:function(jq){
  1989. return jq.each(function(){
  1990. _cc(this);
  1991. });
  1992. },fixColumnSize:function(jq,_1e8){
  1993. return jq.each(function(){
  1994. _ef(this,_1e8);
  1995. });
  1996. },fixRowHeight:function(jq,_1e9){
  1997. return jq.each(function(){
  1998. _34(this,_1e9);
  1999. });
  2000. },freezeRow:function(jq,_1ea){
  2001. return jq.each(function(){
  2002. _45(this,_1ea);
  2003. });
  2004. },autoSizeColumn:function(jq,_1eb){
  2005. return jq.each(function(){
  2006. _e0(this,_1eb);
  2007. });
  2008. },loadData:function(jq,data){
  2009. return jq.each(function(){
  2010. _c0(this,data);
  2011. _195(this);
  2012. });
  2013. },getData:function(jq){
  2014. return $.data(jq[0],"datagrid").data;
  2015. },getRows:function(jq){
  2016. return $.data(jq[0],"datagrid").data.rows;
  2017. },getFooterRows:function(jq){
  2018. return $.data(jq[0],"datagrid").footer;
  2019. },getRowIndex:function(jq,id){
  2020. return _11c(jq[0],id);
  2021. },getChecked:function(jq){
  2022. return _122(jq[0]);
  2023. },getSelected:function(jq){
  2024. var rows=_11f(jq[0]);
  2025. return rows.length>0?rows[0]:null;
  2026. },getSelections:function(jq){
  2027. return _11f(jq[0]);
  2028. },clearSelections:function(jq){
  2029. return jq.each(function(){
  2030. var _1ec=$.data(this,"datagrid");
  2031. var _1ed=_1ec.selectedRows;
  2032. var _1ee=_1ec.checkedRows;
  2033. _1ed.splice(0,_1ed.length);
  2034. _135(this);
  2035. if(_1ec.options.checkOnSelect){
  2036. _1ee.splice(0,_1ee.length);
  2037. }
  2038. });
  2039. },clearChecked:function(jq){
  2040. return jq.each(function(){
  2041. var _1ef=$.data(this,"datagrid");
  2042. var _1f0=_1ef.selectedRows;
  2043. var _1f1=_1ef.checkedRows;
  2044. _1f1.splice(0,_1f1.length);
  2045. _8a(this);
  2046. if(_1ef.options.selectOnCheck){
  2047. _1f0.splice(0,_1f0.length);
  2048. }
  2049. });
  2050. },scrollTo:function(jq,_1f2){
  2051. return jq.each(function(){
  2052. _125(this,_1f2);
  2053. });
  2054. },highlightRow:function(jq,_1f3){
  2055. return jq.each(function(){
  2056. _9c(this,_1f3);
  2057. _125(this,_1f3);
  2058. });
  2059. },selectAll:function(jq){
  2060. return jq.each(function(){
  2061. _13a(this);
  2062. });
  2063. },unselectAll:function(jq){
  2064. return jq.each(function(){
  2065. _135(this);
  2066. });
  2067. },selectRow:function(jq,_1f4){
  2068. return jq.each(function(){
  2069. _a5(this,_1f4);
  2070. });
  2071. },selectRecord:function(jq,id){
  2072. return jq.each(function(){
  2073. var opts=$.data(this,"datagrid").options;
  2074. if(opts.idField){
  2075. var _1f5=_11c(this,id);
  2076. if(_1f5>=0){
  2077. $(this).datagrid("selectRow",_1f5);
  2078. }
  2079. }
  2080. });
  2081. },unselectRow:function(jq,_1f6){
  2082. return jq.each(function(){
  2083. _a6(this,_1f6);
  2084. });
  2085. },checkRow:function(jq,_1f7){
  2086. return jq.each(function(){
  2087. _a2(this,_1f7);
  2088. });
  2089. },uncheckRow:function(jq,_1f8){
  2090. return jq.each(function(){
  2091. _a3(this,_1f8);
  2092. });
  2093. },checkAll:function(jq){
  2094. return jq.each(function(){
  2095. _89(this);
  2096. });
  2097. },uncheckAll:function(jq){
  2098. return jq.each(function(){
  2099. _8a(this);
  2100. });
  2101. },beginEdit:function(jq,_1f9){
  2102. return jq.each(function(){
  2103. _154(this,_1f9);
  2104. });
  2105. },endEdit:function(jq,_1fa){
  2106. return jq.each(function(){
  2107. _15a(this,_1fa,false);
  2108. });
  2109. },cancelEdit:function(jq,_1fb){
  2110. return jq.each(function(){
  2111. _15a(this,_1fb,true);
  2112. });
  2113. },getEditors:function(jq,_1fc){
  2114. return _167(jq[0],_1fc);
  2115. },getEditor:function(jq,_1fd){
  2116. return _16b(jq[0],_1fd);
  2117. },refreshRow:function(jq,_1fe){
  2118. return jq.each(function(){
  2119. var opts=$.data(this,"datagrid").options;
  2120. opts.view.refreshRow.call(opts.view,this,_1fe);
  2121. });
  2122. },validateRow:function(jq,_1ff){
  2123. return _159(jq[0],_1ff);
  2124. },updateRow:function(jq,_200){
  2125. return jq.each(function(){
  2126. _18f(this,_200);
  2127. });
  2128. },appendRow:function(jq,row){
  2129. return jq.each(function(){
  2130. _18c(this,row);
  2131. });
  2132. },insertRow:function(jq,_201){
  2133. return jq.each(function(){
  2134. _188(this,_201);
  2135. });
  2136. },deleteRow:function(jq,_202){
  2137. return jq.each(function(){
  2138. _182(this,_202);
  2139. });
  2140. },getChanges:function(jq,_203){
  2141. return _17c(jq[0],_203);
  2142. },acceptChanges:function(jq){
  2143. return jq.each(function(){
  2144. _199(this);
  2145. });
  2146. },rejectChanges:function(jq){
  2147. return jq.each(function(){
  2148. _19b(this);
  2149. });
  2150. },mergeCells:function(jq,_204){
  2151. return jq.each(function(){
  2152. _1ad(this,_204);
  2153. });
  2154. },showColumn:function(jq,_205){
  2155. return jq.each(function(){
  2156. var col=$(this).datagrid("getColumnOption",_205);
  2157. if(col.hidden){
  2158. col.hidden=false;
  2159. $(this).datagrid("getPanel").find("td[field=\""+_205+"\"]").show();
  2160. _c1(this,_205,1);
  2161. $(this).datagrid("fitColumns");
  2162. }
  2163. });
  2164. },hideColumn:function(jq,_206){
  2165. return jq.each(function(){
  2166. var col=$(this).datagrid("getColumnOption",_206);
  2167. if(!col.hidden){
  2168. col.hidden=true;
  2169. $(this).datagrid("getPanel").find("td[field=\""+_206+"\"]").hide();
  2170. _c1(this,_206,-1);
  2171. $(this).datagrid("fitColumns");
  2172. }
  2173. });
  2174. },sort:function(jq,_207){
  2175. return jq.each(function(){
  2176. _8c(this,_207);
  2177. });
  2178. },gotoPage:function(jq,_208){
  2179. return jq.each(function(){
  2180. var _209=this;
  2181. var page,cb;
  2182. if(typeof _208=="object"){
  2183. page=_208.page;
  2184. cb=_208.callback;
  2185. }else{
  2186. page=_208;
  2187. }
  2188. $(_209).datagrid("options").pageNumber=page;
  2189. $(_209).datagrid("getPager").pagination("refresh",{pageNumber:page});
  2190. _bf(_209,null,function(){
  2191. if(cb){
  2192. cb.call(_209,page);
  2193. }
  2194. });
  2195. });
  2196. }};
  2197. $.fn.datagrid.parseOptions=function(_20a){
  2198. var t=$(_20a);
  2199. return $.extend({},$.fn.panel.parseOptions(_20a),$.parser.parseOptions(_20a,["url","toolbar","idField","sortName","sortOrder","pagePosition","resizeHandle",{sharedStyleSheet:"boolean",fitColumns:"boolean",autoRowHeight:"boolean",striped:"boolean",nowrap:"boolean"},{rownumbers:"boolean",singleSelect:"boolean",ctrlSelect:"boolean",checkOnSelect:"boolean",selectOnCheck:"boolean"},{pagination:"boolean",pageSize:"number",pageNumber:"number"},{multiSort:"boolean",remoteSort:"boolean",showHeader:"boolean",showFooter:"boolean"},{scrollbarSize:"number",scrollOnSelect:"boolean"}]),{pageList:(t.attr("pageList")?eval(t.attr("pageList")):undefined),loadMsg:(t.attr("loadMsg")!=undefined?t.attr("loadMsg"):undefined),rowStyler:(t.attr("rowStyler")?eval(t.attr("rowStyler")):undefined)});
  2200. };
  2201. $.fn.datagrid.parseData=function(_20b){
  2202. var t=$(_20b);
  2203. var data={total:0,rows:[]};
  2204. var _20c=t.datagrid("getColumnFields",true).concat(t.datagrid("getColumnFields",false));
  2205. t.find("tbody tr").each(function(){
  2206. data.total++;
  2207. var row={};
  2208. $.extend(row,$.parser.parseOptions(this,["iconCls","state"]));
  2209. for(var i=0;i<_20c.length;i++){
  2210. row[_20c[i]]=$(this).find("td:eq("+i+")").html();
  2211. }
  2212. data.rows.push(row);
  2213. });
  2214. return data;
  2215. };
  2216. var _20d={render:function(_20e,_20f,_210){
  2217. var rows=$(_20e).datagrid("getRows");
  2218. $(_20f).html(this.renderTable(_20e,0,rows,_210));
  2219. },renderFooter:function(_211,_212,_213){
  2220. var opts=$.data(_211,"datagrid").options;
  2221. var rows=$.data(_211,"datagrid").footer||[];
  2222. var _214=$(_211).datagrid("getColumnFields",_213);
  2223. var _215=["<table class=\"datagrid-ftable\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\"><tbody>"];
  2224. for(var i=0;i<rows.length;i++){
  2225. _215.push("<tr class=\"datagrid-row\" datagrid-row-index=\""+i+"\">");
  2226. _215.push(this.renderRow.call(this,_211,_214,_213,i,rows[i]));
  2227. _215.push("</tr>");
  2228. }
  2229. _215.push("</tbody></table>");
  2230. $(_212).html(_215.join(""));
  2231. },renderTable:function(_216,_217,rows,_218){
  2232. var _219=$.data(_216,"datagrid");
  2233. var opts=_219.options;
  2234. if(_218){
  2235. if(!(opts.rownumbers||(opts.frozenColumns&&opts.frozenColumns.length))){
  2236. return "";
  2237. }
  2238. }
  2239. var _21a=$(_216).datagrid("getColumnFields",_218);
  2240. var _21b=["<table class=\"datagrid-btable\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\"><tbody>"];
  2241. for(var i=0;i<rows.length;i++){
  2242. var row=rows[i];
  2243. var css=opts.rowStyler?opts.rowStyler.call(_216,_217,row):"";
  2244. var cs=this.getStyleValue(css);
  2245. var cls="class=\"datagrid-row "+(_217%2&&opts.striped?"datagrid-row-alt ":" ")+cs.c+"\"";
  2246. var _21c=cs.s?"style=\""+cs.s+"\"":"";
  2247. var _21d=_219.rowIdPrefix+"-"+(_218?1:2)+"-"+_217;
  2248. _21b.push("<tr id=\""+_21d+"\" datagrid-row-index=\""+_217+"\" "+cls+" "+_21c+">");
  2249. _21b.push(this.renderRow.call(this,_216,_21a,_218,_217,row));
  2250. _21b.push("</tr>");
  2251. _217++;
  2252. }
  2253. _21b.push("</tbody></table>");
  2254. return _21b.join("");
  2255. },renderRow:function(_21e,_21f,_220,_221,_222){
  2256. var opts=$.data(_21e,"datagrid").options;
  2257. var cc=[];
  2258. if(_220&&opts.rownumbers){
  2259. var _223=_221+1;
  2260. if(opts.pagination){
  2261. _223+=(opts.pageNumber-1)*opts.pageSize;
  2262. }
  2263. cc.push("<td class=\"datagrid-td-rownumber\"><div class=\"datagrid-cell-rownumber\">"+_223+"</div></td>");
  2264. }
  2265. for(var i=0;i<_21f.length;i++){
  2266. var _224=_21f[i];
  2267. var col=$(_21e).datagrid("getColumnOption",_224);
  2268. if(col){
  2269. var _225=_222[_224];
  2270. var css=col.styler?(col.styler.call(_21e,_225,_222,_221)||""):"";
  2271. var cs=this.getStyleValue(css);
  2272. var cls=cs.c?"class=\""+cs.c+"\"":"";
  2273. var _226=col.hidden?"style=\"display:none;"+cs.s+"\"":(cs.s?"style=\""+cs.s+"\"":"");
  2274. cc.push("<td field=\""+_224+"\" "+cls+" "+_226+">");
  2275. var _226="";
  2276. if(!col.checkbox){
  2277. if(col.align){
  2278. _226+="text-align:"+col.align+";";
  2279. }
  2280. if(!opts.nowrap){
  2281. _226+="white-space:normal;height:auto;";
  2282. }else{
  2283. if(opts.autoRowHeight){
  2284. _226+="height:auto;";
  2285. }
  2286. }
  2287. }
  2288. cc.push("<div style=\""+_226+"\" ");
  2289. cc.push(col.checkbox?"class=\"datagrid-cell-check\"":"class=\"datagrid-cell "+col.cellClass+"\"");
  2290. cc.push(">");
  2291. if(col.checkbox){
  2292. cc.push("<input type=\"checkbox\" "+(_222.checked?"checked=\"checked\"":""));
  2293. cc.push(" name=\""+_224+"\" value=\""+(_225!=undefined?_225:"")+"\">");
  2294. }else{
  2295. if(col.formatter){
  2296. cc.push(col.formatter(_225,_222,_221));
  2297. }else{
  2298. cc.push(_225);
  2299. }
  2300. }
  2301. cc.push("</div>");
  2302. cc.push("</td>");
  2303. }
  2304. }
  2305. return cc.join("");
  2306. },getStyleValue:function(css){
  2307. var _227="";
  2308. var _228="";
  2309. if(typeof css=="string"){
  2310. _228=css;
  2311. }else{
  2312. if(css){
  2313. _227=css["class"]||"";
  2314. _228=css["style"]||"";
  2315. }
  2316. }
  2317. return {c:_227,s:_228};
  2318. },refreshRow:function(_229,_22a){
  2319. this.updateRow.call(this,_229,_22a,{});
  2320. },updateRow:function(_22b,_22c,row){
  2321. var opts=$.data(_22b,"datagrid").options;
  2322. var _22d=opts.finder.getRow(_22b,_22c);
  2323. $.extend(_22d,row);
  2324. var cs=_22e.call(this,_22c);
  2325. var _22f=cs.s;
  2326. var cls="datagrid-row "+(_22c%2&&opts.striped?"datagrid-row-alt ":" ")+cs.c;
  2327. function _22e(_230){
  2328. var css=opts.rowStyler?opts.rowStyler.call(_22b,_230,_22d):"";
  2329. return this.getStyleValue(css);
  2330. };
  2331. function _231(_232){
  2332. var tr=opts.finder.getTr(_22b,_22c,"body",(_232?1:2));
  2333. if(!tr.length){
  2334. return;
  2335. }
  2336. var _233=$(_22b).datagrid("getColumnFields",_232);
  2337. var _234=tr.find("div.datagrid-cell-check input[type=checkbox]").is(":checked");
  2338. tr.html(this.renderRow.call(this,_22b,_233,_232,_22c,_22d));
  2339. var _235=(tr.hasClass("datagrid-row-checked")?" datagrid-row-checked":"")+(tr.hasClass("datagrid-row-selected")?" datagrid-row-selected":"");
  2340. tr.attr("style",_22f).attr("class",cls+_235);
  2341. if(_234){
  2342. tr.find("div.datagrid-cell-check input[type=checkbox]")._propAttr("checked",true);
  2343. }
  2344. };
  2345. _231.call(this,true);
  2346. _231.call(this,false);
  2347. $(_22b).datagrid("fixRowHeight",_22c);
  2348. },insertRow:function(_236,_237,row){
  2349. var _238=$.data(_236,"datagrid");
  2350. var opts=_238.options;
  2351. var dc=_238.dc;
  2352. var data=_238.data;
  2353. if(_237==undefined||_237==null){
  2354. _237=data.rows.length;
  2355. }
  2356. if(_237>data.rows.length){
  2357. _237=data.rows.length;
  2358. }
  2359. function _239(_23a){
  2360. var _23b=_23a?1:2;
  2361. for(var i=data.rows.length-1;i>=_237;i--){
  2362. var tr=opts.finder.getTr(_236,i,"body",_23b);
  2363. tr.attr("datagrid-row-index",i+1);
  2364. tr.attr("id",_238.rowIdPrefix+"-"+_23b+"-"+(i+1));
  2365. if(_23a&&opts.rownumbers){
  2366. var _23c=i+2;
  2367. if(opts.pagination){
  2368. _23c+=(opts.pageNumber-1)*opts.pageSize;
  2369. }
  2370. tr.find("div.datagrid-cell-rownumber").html(_23c);
  2371. }
  2372. if(opts.striped){
  2373. tr.removeClass("datagrid-row-alt").addClass((i+1)%2?"datagrid-row-alt":"");
  2374. }
  2375. }
  2376. };
  2377. function _23d(_23e){
  2378. var _23f=_23e?1:2;
  2379. var _240=$(_236).datagrid("getColumnFields",_23e);
  2380. var _241=_238.rowIdPrefix+"-"+_23f+"-"+_237;
  2381. var tr="<tr id=\""+_241+"\" class=\"datagrid-row\" datagrid-row-index=\""+_237+"\"></tr>";
  2382. if(_237>=data.rows.length){
  2383. if(data.rows.length){
  2384. opts.finder.getTr(_236,"","last",_23f).after(tr);
  2385. }else{
  2386. var cc=_23e?dc.body1:dc.body2;
  2387. cc.html("<table class=\"datagrid-btable\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\"><tbody>"+tr+"</tbody></table>");
  2388. }
  2389. }else{
  2390. opts.finder.getTr(_236,_237+1,"body",_23f).before(tr);
  2391. }
  2392. };
  2393. _239.call(this,true);
  2394. _239.call(this,false);
  2395. _23d.call(this,true);
  2396. _23d.call(this,false);
  2397. data.total+=1;
  2398. data.rows.splice(_237,0,row);
  2399. this.setEmptyMsg(_236);
  2400. this.refreshRow.call(this,_236,_237);
  2401. },deleteRow:function(_242,_243){
  2402. var _244=$.data(_242,"datagrid");
  2403. var opts=_244.options;
  2404. var data=_244.data;
  2405. function _245(_246){
  2406. var _247=_246?1:2;
  2407. for(var i=_243+1;i<data.rows.length;i++){
  2408. var tr=opts.finder.getTr(_242,i,"body",_247);
  2409. tr.attr("datagrid-row-index",i-1);
  2410. tr.attr("id",_244.rowIdPrefix+"-"+_247+"-"+(i-1));
  2411. if(_246&&opts.rownumbers){
  2412. var _248=i;
  2413. if(opts.pagination){
  2414. _248+=(opts.pageNumber-1)*opts.pageSize;
  2415. }
  2416. tr.find("div.datagrid-cell-rownumber").html(_248);
  2417. }
  2418. if(opts.striped){
  2419. tr.removeClass("datagrid-row-alt").addClass((i-1)%2?"datagrid-row-alt":"");
  2420. }
  2421. }
  2422. };
  2423. opts.finder.getTr(_242,_243).remove();
  2424. _245.call(this,true);
  2425. _245.call(this,false);
  2426. data.total-=1;
  2427. data.rows.splice(_243,1);
  2428. this.setEmptyMsg(_242);
  2429. },onBeforeRender:function(_249,rows){
  2430. },onAfterRender:function(_24a){
  2431. var _24b=$.data(_24a,"datagrid");
  2432. var opts=_24b.options;
  2433. if(opts.showFooter){
  2434. var _24c=$(_24a).datagrid("getPanel").find("div.datagrid-footer");
  2435. _24c.find("div.datagrid-cell-rownumber,div.datagrid-cell-check").css("visibility","hidden");
  2436. }
  2437. this.setEmptyMsg(_24a);
  2438. },setEmptyMsg:function(_24d){
  2439. var _24e=$.data(_24d,"datagrid");
  2440. var opts=_24e.options;
  2441. var _24f=opts.finder.getRows(_24d).length==0;
  2442. if(_24f){
  2443. this.renderEmptyRow(_24d);
  2444. }
  2445. if(opts.emptyMsg){
  2446. _24e.dc.view.children(".datagrid-empty").remove();
  2447. if(_24f){
  2448. var h=_24e.dc.header2.parent().outerHeight();
  2449. var d=$("<div class=\"datagrid-empty\"></div>").appendTo(_24e.dc.view);
  2450. d.html(opts.emptyMsg).css("top",h+"px");
  2451. }
  2452. }
  2453. },renderEmptyRow:function(_250){
  2454. var cols=$.map($(_250).datagrid("getColumnFields"),function(_251){
  2455. return $(_250).datagrid("getColumnOption",_251);
  2456. });
  2457. $.map(cols,function(col){
  2458. col.formatter1=col.formatter;
  2459. col.styler1=col.styler;
  2460. col.formatter=col.styler=undefined;
  2461. });
  2462. var _252=$.data(_250,"datagrid").dc.body2;
  2463. _252.html(this.renderTable(_250,0,[{}],false));
  2464. _252.find("tbody *").css({height:1,borderColor:"transparent",background:"transparent"});
  2465. var tr=_252.find(".datagrid-row");
  2466. tr.removeClass("datagrid-row").removeAttr("datagrid-row-index");
  2467. tr.find(".datagrid-cell,.datagrid-cell-check").empty();
  2468. $.map(cols,function(col){
  2469. col.formatter=col.formatter1;
  2470. col.styler=col.styler1;
  2471. col.formatter1=col.styler1=undefined;
  2472. });
  2473. }};
  2474. $.fn.datagrid.defaults=$.extend({},$.fn.panel.defaults,{sharedStyleSheet:false,frozenColumns:undefined,columns:undefined,fitColumns:false,resizeHandle:"right",autoRowHeight:true,toolbar:null,striped:false,method:"post",nowrap:true,idField:null,url:null,data:null,loadMsg:"Processing, please wait ...",emptyMsg:"",rownumbers:false,singleSelect:false,ctrlSelect:false,selectOnCheck:true,checkOnSelect:true,pagination:false,pagePosition:"bottom",pageNumber:1,pageSize:10,pageList:[10,20,30,40,50],queryParams:{},sortName:null,sortOrder:"asc",multiSort:false,remoteSort:true,showHeader:true,showFooter:false,scrollOnSelect:true,scrollbarSize:18,rownumberWidth:30,editorHeight:24,headerEvents:{mouseover:_82(true),mouseout:_82(false),click:_86,dblclick:_8d,contextmenu:_93},rowEvents:{mouseover:_96(true),mouseout:_96(false),click:_9e,dblclick:_a9,contextmenu:_ae},rowStyler:function(_253,_254){
  2475. },loader:function(_255,_256,_257){
  2476. var opts=$(this).datagrid("options");
  2477. if(!opts.url){
  2478. return false;
  2479. }
  2480. $.ajax({type:opts.method,url:opts.url,data:_255,dataType:"json",success:function(data){
  2481. _256(data);
  2482. },error:function(){
  2483. _257.apply(this,arguments);
  2484. }});
  2485. },loadFilter:function(data){
  2486. return data;
  2487. },editors:_1c4,finder:{getTr:function(_258,_259,type,_25a){
  2488. type=type||"body";
  2489. _25a=_25a||0;
  2490. var _25b=$.data(_258,"datagrid");
  2491. var dc=_25b.dc;
  2492. var opts=_25b.options;
  2493. if(_25a==0){
  2494. var tr1=opts.finder.getTr(_258,_259,type,1);
  2495. var tr2=opts.finder.getTr(_258,_259,type,2);
  2496. return tr1.add(tr2);
  2497. }else{
  2498. if(type=="body"){
  2499. var tr=$("#"+_25b.rowIdPrefix+"-"+_25a+"-"+_259);
  2500. if(!tr.length){
  2501. tr=(_25a==1?dc.body1:dc.body2).find(">table>tbody>tr[datagrid-row-index="+_259+"]");
  2502. }
  2503. return tr;
  2504. }else{
  2505. if(type=="footer"){
  2506. return (_25a==1?dc.footer1:dc.footer2).find(">table>tbody>tr[datagrid-row-index="+_259+"]");
  2507. }else{
  2508. if(type=="selected"){
  2509. return (_25a==1?dc.body1:dc.body2).find(">table>tbody>tr.datagrid-row-selected");
  2510. }else{
  2511. if(type=="highlight"){
  2512. return (_25a==1?dc.body1:dc.body2).find(">table>tbody>tr.datagrid-row-over");
  2513. }else{
  2514. if(type=="checked"){
  2515. return (_25a==1?dc.body1:dc.body2).find(">table>tbody>tr.datagrid-row-checked");
  2516. }else{
  2517. if(type=="editing"){
  2518. return (_25a==1?dc.body1:dc.body2).find(">table>tbody>tr.datagrid-row-editing");
  2519. }else{
  2520. if(type=="last"){
  2521. return (_25a==1?dc.body1:dc.body2).find(">table>tbody>tr[datagrid-row-index]:last");
  2522. }else{
  2523. if(type=="allbody"){
  2524. return (_25a==1?dc.body1:dc.body2).find(">table>tbody>tr[datagrid-row-index]");
  2525. }else{
  2526. if(type=="allfooter"){
  2527. return (_25a==1?dc.footer1:dc.footer2).find(">table>tbody>tr[datagrid-row-index]");
  2528. }
  2529. }
  2530. }
  2531. }
  2532. }
  2533. }
  2534. }
  2535. }
  2536. }
  2537. }
  2538. },getRow:function(_25c,p){
  2539. var _25d=(typeof p=="object")?p.attr("datagrid-row-index"):p;
  2540. return $.data(_25c,"datagrid").data.rows[parseInt(_25d)];
  2541. },getRows:function(_25e){
  2542. return $(_25e).datagrid("getRows");
  2543. }},view:_20d,onBeforeLoad:function(_25f){
  2544. },onLoadSuccess:function(){
  2545. },onLoadError:function(){
  2546. },onClickRow:function(_260,_261){
  2547. },onDblClickRow:function(_262,_263){
  2548. },onClickCell:function(_264,_265,_266){
  2549. },onDblClickCell:function(_267,_268,_269){
  2550. },onBeforeSortColumn:function(sort,_26a){
  2551. },onSortColumn:function(sort,_26b){
  2552. },onResizeColumn:function(_26c,_26d){
  2553. },onBeforeSelect:function(_26e,_26f){
  2554. },onSelect:function(_270,_271){
  2555. },onBeforeUnselect:function(_272,_273){
  2556. },onUnselect:function(_274,_275){
  2557. },onSelectAll:function(rows){
  2558. },onUnselectAll:function(rows){
  2559. },onBeforeCheck:function(_276,_277){
  2560. },onCheck:function(_278,_279){
  2561. },onBeforeUncheck:function(_27a,_27b){
  2562. },onUncheck:function(_27c,_27d){
  2563. },onCheckAll:function(rows){
  2564. },onUncheckAll:function(rows){
  2565. },onBeforeEdit:function(_27e,_27f){
  2566. },onBeginEdit:function(_280,_281){
  2567. },onEndEdit:function(_282,_283,_284){
  2568. },onAfterEdit:function(_285,_286,_287){
  2569. },onCancelEdit:function(_288,_289){
  2570. },onHeaderContextMenu:function(e,_28a){
  2571. },onRowContextMenu:function(e,_28b,_28c){
  2572. }});
  2573. })(jQuery);