jquery.datagrid.js 66 KB

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