jquery.table.js 32 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021
  1. /*
  2. * @author f1jee @date 2009-04-09 ���� :���ӱ���� parm:array---������,tid,���-css
  3. * modifed by f1jee 2010-02-18
  4. * id,countid--���
  5. */
  6. ;
  7. ( function($) {
  8. $.fn.addRow = function(arg) {
  9. var $table=$(this);
  10. var tid =$table.attr("id");
  11. //alert(tid);
  12. $tbodyObj = $("<tbody></tbody>");
  13. $trObj = $("<tr></tr>");
  14. $tdObj = $("<th width=\"20px\">��</th>");
  15. $trObj.append($tdObj);
  16. var array = arg.colmuns;
  17. for ( var i = 0; i < array.length; i++) {
  18. var css = array[i].css;
  19. var title = array[i].title;
  20. $tdObj = $("<th></th>");
  21. $tdObj.html(title);
  22. //$tdObj.resizable();
  23. //alert(title);
  24. $trObj.append($tdObj);
  25. }
  26. $addButton=$("<input type=\"button\" value=\"+\" class=\"jq-table-add\">");
  27. var showDelBtn=arg.showDelBtn;
  28. if (showDelBtn ==null)
  29. {
  30. showDelBtn=true;
  31. }
  32. if (showDelBtn==true)
  33. this.before($addButton);
  34. $addButton.click( function() {
  35. //alert(arg.count)
  36. appendTr(arg,tid);
  37. });
  38. $tdObj = $("<th width=\"40px\">����</th>");
  39. $trObj.append($tdObj);
  40. $tbodyObj.append($trObj);
  41. this.append($tbodyObj);
  42. var data = arg.data;
  43. var array = arg.colmuns;
  44. var countid = arg.count;
  45. $countObj = $("#" + countid);
  46. for (one in data) {
  47. count = Number($countObj.val()) + 1;
  48. // alert(count);
  49. $countObj.val(count.toString());
  50. $tbodyObj = $("<tbody></tbody>");
  51. $tbodyObj.attr("id", "tbody" + count.toString());
  52. this.append($tbodyObj);
  53. $trObj = $("<tr></tr>");
  54. $tbodyObj.append($trObj);
  55. //alert("<td class='"+tid+"td-first'></td>");
  56. $tdObj = $("<td class='"+tid+"td-first'></td>");
  57. $tdObj.html(count.toString());
  58. $trObj.append($tdObj);
  59. for ( var i = 0; i < array.length; i++) {
  60. var type = array[i].type;
  61. var name = array[i].id;
  62. var value = "";
  63. var value_ = "";
  64. for (key in data[one]) {
  65. if (name == key) {
  66. value = data[one][key];
  67. value_ = data[one][key+"forValue"];
  68. break;
  69. }
  70. }
  71. // alert(value);
  72. var copy_ = array[i].copy;
  73. var css = array[i].css;
  74. var title = array[i].title;
  75. var f_name = array[i].f_name;
  76. var format_ = array[i].format_;
  77. var view=array[i].view;
  78. var viewIndex=array[i].viewIndex;
  79. $tdObj = $("<td></td>");
  80. $trObj.append($tdObj);
  81. id = name + count.toString();
  82. if (type == "label") {
  83. $inputObject = $("<div id='" + id + "'"+">"+value+"</div>");
  84. $tdObj.append($inputObject);
  85. // alert(css);
  86. if (css != null) {
  87. $inputObject.css(css);
  88. }
  89. }
  90. if (type == "dlg"){
  91. $inputObject=$("<input type=\"button\" onclick=\"dListForId('"+view+"','"+viewIndex+"','"+id+"')\" value=\".\" class=\"eform-btn-select\"><span id=\""+id+"-info\">"+value_+"</span><input type=\"hidden\" name=\""+id+"\" id=\""+id+"\" value=\""+value+"\">");
  92. // alert("<span id=\""+id+"-info\"></span><input type=\"hidden\" name=\""+id+"\" id=\""+id+"\" value=\"\"><input type=\"button\" onclick=\"dListForId('"+view+"','"+viewIndex+"','"+id+"')\" value=\".\" class=\"eform-btn-select\">");
  93. $tdObj.append($inputObject);
  94. }
  95. if (type == "dlgValue"){
  96. //alert(value_);
  97. $inputObject=$("<span id=\""+id+"-info\">"+value_+"</span><input type=\"hidden\" name=\""+id+"\" id=\""+id+"\" value=\""+value+"\">");
  98. // alert("<span id=\""+id+"-info\"></span><input type=\"hidden\" name=\""+id+"\" id=\""+id+"\" value=\"\"><input type=\"button\" onclick=\"dListForId('"+view+"','"+viewIndex+"','"+id+"')\" value=\".\" class=\"eform-btn-select\">");
  99. $tdObj.append($inputObject);
  100. }
  101. if (type == "text-hide") {
  102. $inputObject = $("<input name=\"" + id + "\""
  103. + " value=\""
  104. + value + "\""
  105. +" required=\"true\""
  106. +" validType=\""+format_+"\""
  107. + " id=\"" + id + "\""
  108. + " onchange=\"checkItem('" + id + "','" + format_
  109. + "');\"" + ">");
  110. $tdObj.append($inputObject);
  111. $div=$("<div>"+value+"</div>")
  112. $tdObj.append($div);
  113. $inputObject.hide();
  114. $tdObj.mouseover(function(){
  115. $childs=$(this).children();
  116. $editor=$($childs[0]);
  117. $editor.show();
  118. $div=$($childs[1]);
  119. $div.hide();
  120. });
  121. $tdObj.mouseout(function(){
  122. $childs=$(this).children();
  123. $editor=$($childs[0]);
  124. $editor.hide();
  125. $div=$($childs[1]);
  126. $div.text($editor.val());
  127. $div.show();
  128. });
  129. //alert($tdObj.width());
  130. //$inputObject.width($tdObj.width());
  131. // alert(css);
  132. if (css != null) {
  133. $inputObject.css(css);
  134. }
  135. //$inputObject.width($tdObj.width()+"px");
  136. }
  137. if (type == "text") {
  138. $inputObject = $("<input name=\"" + id + "\""
  139. + " value=\""
  140. + value + "\""
  141. +" required=\"true\""
  142. +" validType=\""+format_+"\""
  143. + " id=\"" + id + "\""
  144. + " onchange=\"checkItem('" + id + "','" + format_
  145. + "');\"" + ">");
  146. $tdObj.append($inputObject);
  147. //$inputObject.hide();
  148. //alert($tdObj.width());
  149. //$inputObject.width($tdObj.width());
  150. // alert(css);
  151. if (css != null) {
  152. $inputObject.css(css);
  153. }
  154. //$inputObject.width($tdObj.width()+"px");
  155. }
  156. if (type == "combox-value") {
  157. id = name + count.toString();
  158. $selectObject=$("#" + copy_);
  159. //$options = $("#" + copy_ + " option");
  160. //$options.val(value);
  161. //$options_ = $("#" + copy_ + " option:selected");
  162. $selectObject.val(value);
  163. $options_ = $("#" + copy_ + " option:selected");
  164. //alert($options_.text());
  165. $inputObject = $("<div id='" + id + "'"+">"+$options_.text()+"</div>");
  166. $tdObj.append($inputObject);
  167. if (css != null) {
  168. $inputObject.css(css);
  169. }
  170. }
  171. if (type == "combox") {
  172. id = name + count.toString();
  173. $selectObject = $("<select name=\"" + id + "\"" + " id=\""
  174. + id + "\"" + "></select>");
  175. $options_ = $("#" + copy_ + " option");
  176. $options_.clone().appendTo($selectObject);
  177. // alert(value);
  178. $selectObject.val(value);
  179. $tdObj.append($selectObject);
  180. if (css != null) {
  181. $selectObject.css(css);
  182. }
  183. //$selectObject.width($tdObj.width()+"px");
  184. //$selectObject.height($tdObj.height()+"px");
  185. $selectObject.hide();
  186. $a=$("#"+id+" option:selected");
  187. $div=$("<div>"+$a.text()+"</div>")
  188. $tdObj.append($div);
  189. $tdObj.dblclick(function(){
  190. $childs=$(this).children();
  191. $editor=$($childs[0]);
  192. $editor.show();
  193. $div=$($childs[1]);
  194. $div.hide();
  195. });
  196. $selectObject.change(function(){
  197. //$childs=$(this).children();
  198. //$editor=$($childs[0]);
  199. //$editor.hide();
  200. //$div=$($childs[1]);
  201. //alert("========================"+$editor.attr("id"));
  202. //$a=$("#"+$editor.attr("id")+" option:selected");
  203. //alert("#"+$editor.attr("id")+" option:selected");
  204. //$div.text($a.text());
  205. //$div.show();
  206. //alert("=========");
  207. $a=$("#"+$(this).attr("id")+" option:selected");
  208. $next=$(this).next();
  209. $next.text($a.text());
  210. $(this).hide();
  211. $next.show();
  212. //refreshTdEditor(tid);
  213. });
  214. }
  215. }
  216. $tdObj = $("<td></td>");
  217. $trObj.append($tdObj);
  218. // ����
  219. $btn_del = $("<input type=\"button\" name=\"delBtn\" id=\"delBtn"
  220. + count.toString() + "\" value=\"\" class=\"jq-table-x\">");
  221. // alert($btn_del.attr("id"));
  222. $btn_del.click( function() {
  223. // alert($(this).attr("id"));
  224. //var btnId = $(this).attr("id");
  225. //var id = btnId.substring(6, 7);
  226. // alert(id);
  227. //$("#tbody" + id).remove();
  228. //ˢ�����
  229. $(this).parent().parent().parent().remove();
  230. var tid=$table.attr("id");
  231. //alert("#"+tid +" .td-first");
  232. var $a=$("."+tid+"td-first");
  233. //alert($table.attr("id"));
  234. var i=0;
  235. $a.each(function(){
  236. i++;
  237. $(this).html(i);
  238. });
  239. for(var i=0;i<$a.length;i++)
  240. {
  241. //var $aa=$a[i];
  242. //$aa.html("a");
  243. //alert($a[i].html());
  244. //$a[i].append("<div>a</div>");
  245. }
  246. });
  247. // $btn_del = $("<input type=\"button\" name=\"delBtn\" value=\"ɾ��\"
  248. // onclick=\"test();\">");
  249. // alert("<input type=\"button\" name=\"delBtn\" value=\"ɾ��\"
  250. // onclick=\"delRow('"+ $tbodyObj.attr("id") + "');\">");
  251. var showDelBtn=arg.showDelBtn;
  252. if (showDelBtn ==null)
  253. {
  254. showDelBtn=true;
  255. }
  256. if (showDelBtn!=false){
  257. $tdObj.append($btn_del);
  258. }
  259. var i=0;
  260. $("."+tid+"td-first").each(function(){
  261. i++;
  262. $(this).html(i);
  263. });
  264. }
  265. function refreshTdEditor(tid) {
  266. var $table=$("#"+tid);
  267. var $tds=$("#"+tid +" tr td");
  268. for(var i=0;i<$tds.length;i++){
  269. alert(i);
  270. }
  271. }
  272. function appendTr(arg,tid) {
  273. var array = arg.colmuns;
  274. var countid = arg.count;
  275. var $table=$("#"+tid);
  276. $countObj = $("#" + countid);
  277. count = Number($countObj.val()) + 1;
  278. // alert(count);
  279. $countObj.val(count.toString());
  280. $tbodyObj = $("<tbody></tbody>");
  281. $tbodyObj.attr("id", "tbody" + count.toString());
  282. $table.append($tbodyObj);
  283. $trObj = $("<tr></tr>");
  284. $tbodyObj.append($trObj);
  285. //alert("<td class='"+tid+"td-first'></td>");
  286. $tdObj = $("<td class='"+tid+"td-first'></td>");
  287. $tdObj.html(count.toString());
  288. $trObj.append($tdObj);
  289. for ( var i = 0; i < array.length; i++) {
  290. var type = array[i].type;
  291. var name = array[i].id;
  292. var value = "";
  293. // alert(value);
  294. var copy_ = array[i].copy;
  295. var css = array[i].css;
  296. var title = array[i].title;
  297. var f_name = array[i].f_name;
  298. var format_ = array[i].format_;
  299. var view=array[i].view;
  300. var viewIndex=array[i].viewIndex;
  301. $tdObj = $("<td></td>");
  302. $trObj.append($tdObj);
  303. id = name + count.toString();
  304. if (type == "label") {
  305. $inputObject = $("<div id='" + id + "'"+">"+value+"</div>");
  306. $tdObj.append($inputObject);
  307. // alert(css);
  308. if (css != null) {
  309. $inputObject.css(css);
  310. }
  311. }
  312. if (type == "dlg"){
  313. $inputObject=$("<input type=\"button\" onclick=\"dListForId('"+view+"','"+viewIndex+"','"+id+"')\" value=\".\" class=\"eform-btn-select\"><span id=\""+id+"-info\"></span><input type=\"hidden\" name=\""+id+"\" id=\""+id+"\" value=\"\">");
  314. //$inputObject=$("<input type=\"button\" onclick=\"dListForId('"+view+"','"+viewIndex+"','"+id+"')\" value=\".\" class=\"eform-btn-select\"><span id=\""+id+"-info\">"+value_+"</span><input type=\"hidden\" name=\""+id+"\" id=\""+id+"\" value=\""+value+"\">");
  315. // alert("<span id=\""+id+"-info\"></span><input type=\"hidden\" name=\""+id+"\" id=\""+id+"\" value=\"\"><input type=\"button\" onclick=\"dListForId('"+view+"','"+viewIndex+"','"+id+"')\" value=\".\" class=\"eform-btn-select\">");
  316. $tdObj.append($inputObject);
  317. }
  318. if (type == "text-hide") {
  319. $inputObject = $("<input type1=\"hidden\" name=\"" + id + "\""
  320. + " value=\""
  321. + value + "\""
  322. +" required=\"true\""
  323. +" validType=\""+format_+"\""
  324. + " id=\"" + id + "\""
  325. + " onchange=\"checkItem('" + id + "','" + format_
  326. + "');\"" + ">");
  327. $tdObj.append($inputObject);
  328. $div=$("<div>"+value+"</div>")
  329. $tdObj.append($div);
  330. $inputObject.hide();
  331. $tdObj.mouseover(function(){
  332. $childs=$(this).children();
  333. $editor=$($childs[0]);
  334. $editor.show();
  335. $div=$($childs[1]);
  336. $div.hide();
  337. });
  338. $tdObj.mouseout(function(){
  339. $childs=$(this).children();
  340. $editor=$($childs[0]);
  341. $editor.hide();
  342. $div=$($childs[1]);
  343. $div.text($editor.val());
  344. $div.show();
  345. });
  346. // alert(css);
  347. if (css != null) {
  348. $inputObject.css(css);
  349. }
  350. // alert(css);
  351. if (css != null) {
  352. $inputObject.css(css);
  353. }
  354. //$inputObject.width($tdObj.width()+"px");
  355. //$inputObject.height($tdObj.height()+"px");
  356. }
  357. if (type == "text") {
  358. $inputObject = $("<input type1=\"hidden\" name=\"" + id + "\""
  359. + " value=\""
  360. + value + "\""
  361. +" required=\"true\""
  362. +" validType=\""+format_+"\""
  363. + " id=\"" + id + "\""
  364. + " onchange=\"checkItem('" + id + "','" + format_
  365. + "');\"" + ">");
  366. $tdObj.append($inputObject);
  367. //$div=$("<div>"+value+"</div>")
  368. //$tdObj.append($div);
  369. //$inputObject.hide();
  370. // alert(css);
  371. if (css != null) {
  372. $inputObject.css(css);
  373. }
  374. // alert(css);
  375. if (css != null) {
  376. $inputObject.css(css);
  377. }
  378. //$inputObject.width($tdObj.width()+"px");
  379. //$inputObject.height($tdObj.height()+"px");
  380. }
  381. if (type == "combox-value") {
  382. id = name + count.toString();
  383. $options_ = $("#" + copy_ + " option");
  384. $options_.val(value);
  385. $inputObject = $("<div id='" + id + "'"+">"+$options_.text()+"</div>");
  386. $tdObj.append($inputObject);
  387. if (css != null) {
  388. $inputObject.css(css);
  389. }
  390. }
  391. if (type == "combox") {
  392. id = name + count.toString();
  393. $selectObject = $("<select name=\"" + id + "\"" + " id=\""
  394. + id + "\"" + "></select>");
  395. $options_ = $("#" + copy_ + " option");
  396. $options_.clone().appendTo($selectObject);
  397. //alert(value);
  398. $selectObject.val(value);
  399. $tdObj.append($selectObject);
  400. $div=$("<div>"+value+"</div>")
  401. $tdObj.append($div);
  402. $selectObject.hide();
  403. if (css != null) {
  404. $selectObject.css(css);
  405. }
  406. //$selectObject.width($tdObj.width()+"px");
  407. //$selectObject.height($tdObj.height()+"px");
  408. $tdObj.dblclick(function(){
  409. $childs=$(this).children();
  410. $editor=$($childs[0]);
  411. $editor.show();
  412. $div=$($childs[1]);
  413. $div.hide();
  414. });
  415. $selectObject.change(function(){
  416. //$childs=$(this).children();
  417. //$editor=$($childs[0]);
  418. //$editor.hide();
  419. //$div=$($childs[1]);
  420. //alert("========================"+$editor.attr("id"));
  421. //$a=$("#"+$editor.attr("id")+" option:selected");
  422. //alert("#"+$editor.attr("id")+" option:selected");
  423. //$div.text($a.text());
  424. //$div.show();
  425. //alert("=========");
  426. $a=$("#"+$(this).attr("id")+" option:selected");
  427. $next=$(this).next();
  428. $next.text($a.text());
  429. $(this).hide();
  430. $next.show();
  431. //refreshTdEditor(tid);
  432. });
  433. }
  434. }
  435. $tdObj = $("<td></td>");
  436. $trObj.append($tdObj);
  437. // ����
  438. $btn_del = $("<input type=\"button\" name=\"delBtn\" id=\"delBtn"
  439. + count.toString() + "\" value=\"ɾ��\">");
  440. // alert($btn_del.attr("id"));
  441. $btn_del.click( function() {
  442. a();
  443. // alert($(this).attr("id"));
  444. //var btnId = $(this).attr("id");
  445. //var id = btnId.substring(6, 7);
  446. // alert(id);
  447. //$("#tbody" + id).remove();
  448. //ˢ�����
  449. $(this).parent().parent().parent().remove();
  450. var tid=$table.attr("id");
  451. //alert("#"+tid +" .td-first");
  452. var $a=$("."+tid+"td-first");
  453. //alert($table.attr("id"));
  454. var i=0;
  455. $a.each(function(){
  456. i++;
  457. $(this).html(i);
  458. });
  459. for(var i=0;i<$a.length;i++)
  460. {
  461. //var $aa=$a[i];
  462. //$aa.html("a");
  463. //alert($a[i].html());
  464. //$a[i].append("<div>a</div>");
  465. }
  466. });
  467. // $btn_del = $("<input type=\"button\" name=\"delBtn\" value=\"ɾ��\"
  468. // onclick=\"test();\">");
  469. // alert("<input type=\"button\" name=\"delBtn\" value=\"ɾ��\"
  470. // onclick=\"delRow('"+ $tbodyObj.attr("id") + "');\">");
  471. var showDelBtn=arg.showDelBtn;
  472. if (showDelBtn ==null)
  473. {
  474. showDelBtn=true;
  475. }
  476. if (showDelBtn!=false){
  477. $tdObj.append($btn_del);
  478. }
  479. var i=0;
  480. $("."+tid+"td-first").each(function(){
  481. i++;
  482. $(this).html(i);
  483. });
  484. }
  485. //alert(arg.msgRender);
  486. //if $(arg.msgRender)
  487. //$(arg.msgRender).hide();
  488. return this;
  489. }
  490. $.fn.addTr = function(arg) {
  491. //alert("=============");
  492. var $table=$(this);
  493. var tid =$table.attr("id");
  494. var array = arg.colmuns;
  495. var data= arg.data;
  496. var countid = arg.count;
  497. $countObj = $("#" + countid);
  498. count = Number($countObj.val()) + 1;
  499. // alert(count);
  500. $countObj.val(count.toString());
  501. $tbodyObj = $("<tbody></tbody>");
  502. $tbodyObj.attr("id", "tbody" + count.toString());
  503. $table.append($tbodyObj);
  504. $trObj = $("<tr></tr>");
  505. $tbodyObj.append($trObj);
  506. //alert("<td class='"+tid+"td-first'></td>");
  507. $tdObj = $("<td class='"+tid+"td-first'></td>");
  508. $tdObj.html(count.toString());
  509. $trObj.append($tdObj);
  510. for ( var i = 0; i < array.length; i++) {
  511. var type = array[i].type;
  512. var name = array[i].id;
  513. var value = data[i];
  514. // alert(value);
  515. var copy_ = array[i].copy;
  516. var css = array[i].css;
  517. var title = array[i].title;
  518. var f_name = array[i].f_name;
  519. var format_ = array[i].format_;
  520. $tdObj = $("<td></td>");
  521. $trObj.append($tdObj);
  522. id = name + count.toString();
  523. if (type == "label") {
  524. $inputObject = $("<div id='" + id + "'"+">"+value+"</div>");
  525. $tdObj.append($inputObject);
  526. // alert(css);
  527. if (css != null) {
  528. $inputObject.css(css);
  529. }
  530. }
  531. if (type == "text") {
  532. $inputObject = $("<input type1=\"hidden\" name=\"" + id + "\""
  533. + " value=\""
  534. + value + "\""
  535. +" required=\"true\""
  536. +" validType=\""+format_+"\""
  537. + " id=\"" + id + "\""
  538. + " onchange=\"checkItem('" + id + "','" + format_
  539. + "');\"" + ">");
  540. $tdObj.append($inputObject);
  541. $div=$("<div>"+value+"</div>")
  542. $tdObj.append($div);
  543. $inputObject.hide();
  544. $tdObj.mouseover(function(){
  545. //$childs=$(this).children();
  546. //$editor=$($childs[0]);
  547. //$editor.show();
  548. //$div=$($childs[1]);
  549. //$div.hide();
  550. });
  551. $tdObj.mouseout(function(){
  552. //$childs=$(this).children();
  553. //$editor=$($childs[0]);
  554. //$editor.hide();
  555. //$div=$($childs[1]);
  556. //$div.text($editor.val());
  557. //$div.show();
  558. });
  559. // alert(css);
  560. if (css != null) {
  561. $inputObject.css(css);
  562. }
  563. // alert(css);
  564. if (css != null) {
  565. $inputObject.css(css);
  566. }
  567. $inputObject.width($tdObj.width()+"px");
  568. $inputObject.height($tdObj.height()+"px");
  569. }
  570. if (type == "combox-value") {
  571. id = name + count.toString();
  572. $options_ = $("#" + copy_ + " option");
  573. $options_.val(value);
  574. $inputObject = $("<div id='" + id + "'"+">"+$options_.text()+"</div>");
  575. $tdObj.append($inputObject);
  576. if (css != null) {
  577. $inputObject.css(css);
  578. }
  579. }
  580. if (type == "combox") {
  581. id = name + count.toString();
  582. $inputObject = $("<input type1=\"hidden\" name=\"" + id + "\""
  583. + " value=\""
  584. + value.id_ + "\""
  585. +" required=\"true\""
  586. +" validType=\""+format_+"\""
  587. + " id=\"" + id + "\""
  588. + ">");
  589. $tdObj.append($inputObject);
  590. $div=$("<div>"+value.title_+"</div>")
  591. $tdObj.append($div);
  592. $inputObject.hide();
  593. }
  594. }
  595. $tdObj = $("<td></td>");
  596. $trObj.append($tdObj);
  597. // ����
  598. $btn_del = $("<input type=\"button\" name=\"delBtn\" id=\"delBtn"
  599. + count.toString() + "\" value=\"\" class=\"jq-table-x\">");
  600. // alert($btn_del.attr("id"));
  601. $btn_del.click( function() {
  602. a();
  603. // alert($(this).attr("id"));
  604. //var btnId = $(this).attr("id");
  605. //var id = btnId.substring(6, 7);
  606. // alert(id);
  607. //$("#tbody" + id).remove();
  608. //ˢ�����
  609. $tr=$(this).parent().parent();
  610. $tds=$tr.children();
  611. $td=$($tds[0]);
  612. var index_del=$td.html();
  613. $(this).parent().parent().parent().remove();
  614. var tid=$table.attr("id");
  615. //alert("#"+tid +" .td-first");
  616. var $a=$("."+tid+"td-first");
  617. //alert($table.attr("id"));
  618. var i=0;
  619. $a.each(function(){
  620. i++;
  621. $(this).html(i);
  622. });
  623. for(var i=0;i<$a.length;i++)
  624. {
  625. //var $aa=$a[i];
  626. //$aa.html("a");
  627. //alert($a[i].html());
  628. //$a[i].append("<div>a</div>");
  629. }
  630. $("#"+tid).attr("index_del",index_del);
  631. //alert(index_del);
  632. // $("#"+tid).trigger('click');
  633. });
  634. // $btn_del = $("<input type=\"button\" name=\"delBtn\" value=\"ɾ��\"
  635. // onclick=\"test();\">");
  636. // alert("<input type=\"button\" name=\"delBtn\" value=\"ɾ��\"
  637. // onclick=\"delRow('"+ $tbodyObj.attr("id") + "');\">");
  638. var showDelBtn=arg.showDelBtn;
  639. if (showDelBtn ==null)
  640. {
  641. showDelBtn=true;
  642. }
  643. if (showDelBtn!=false){
  644. $tdObj.append($btn_del);
  645. }
  646. var i=0;
  647. $("."+tid+"td-first").each(function(){
  648. i++;
  649. $(this).html(i);
  650. });
  651. }
  652. /**
  653. �ݲ�ʵ��
  654. */
  655. $.fn.addHeader = function(arg) {
  656. table = document.getElementById(tid);
  657. tbodyObj = document.createElement("tbody");
  658. table.appendChild(tbodyObj);
  659. trObj = document.createElement("TR");
  660. tbodyObj.appendChild(trObj);
  661. for ( var i = 0; i < array.length; i++) {
  662. thObj = document.createElement("TH");
  663. thObj.innerHTML = array[i][0];
  664. trObj.appendChild(thObj);
  665. }
  666. thObj = document.createElement("TH");
  667. thObj.innerHTML = "����";
  668. trObj.appendChild(thObj);
  669. }
  670. /**
  671. �����ͷ���
  672. */
  673. $.fn.sumRow = function(arg) {
  674. $trs=$("#tableData tr");
  675. var rows=1;
  676. var result=0;
  677. //alert("============"+$trs.length);
  678. var arrForCount=new Array($trs.length-1);
  679. var arrForValue=new Array($trs.length-1);
  680. var arrForPercent=new Array($trs.length-1);
  681. for ( var i = 0; i < arrForCount.length; i++) {
  682. arrForCount[i]=1;
  683. }
  684. for ( var i = 0; i < arrForPercent.length; i++) {
  685. arrForPercent[i]=1;
  686. }
  687. var array = arg.colmuns;
  688. var indexSum=arg.index;
  689. var edit= arg.edit;
  690. //alert(edit);
  691. // init arrForCount
  692. for ( var i = 0; i < array.length; i++) {
  693. var index =array[i].index;
  694. var type=array[i].type;
  695. if (type=="count")
  696. {
  697. var index =array[i].index;
  698. $a=$("#tableData tr td:nth-child("+index+") :nth-child(1)");
  699. //alert($a.length);
  700. for(var j=0;j<$a.length;j++){
  701. $input =$($a[j]);
  702. if (edit==true) {arrForCount[j]=$input.val();}else {arrForCount[j]=$input.text();}
  703. }
  704. }
  705. if (type=="percent")
  706. {
  707. var index =array[i].index;
  708. $a=$("#tableData tr td:nth-child("+index+") :nth-child(1)");
  709. //alert($a.length);
  710. for(var j=0;j<$a.length;j++){
  711. $input =$($a[j]);
  712. if (edit==true) {arrForPercent[j]=$input.val();}else {arrForPercent[j]=$input.text();}
  713. arrForPercent[j]=arrForPercent[j]*0.01;
  714. }
  715. }
  716. if (type=="value")
  717. {
  718. var index =array[i].index;
  719. $a=$("#tableData tr td:nth-child("+index+") :nth-child(1)");
  720. $result=$("#tableData tr td:nth-child("+indexSum+") :nth-child(1)");
  721. //$resultDiv=$("#tableData tr td:nth-child("+indexSum+") :nth-child(2)");
  722. //alert($a.length);
  723. for(var j=0;j<$a.length;j++){
  724. $input =$($a[j]);
  725. arrForValue[j]=$input.val();
  726. if (edit==true) {
  727. arrForValue[j]=$input.val();
  728. $($result[j]).val(arrForCount[j]*arrForValue[j]*arrForPercent[j]);
  729. $next=$($result[j]).next();
  730. $next.text($($result[j]).val());
  731. }else {
  732. arrForValue[j]=$input.text();
  733. $($result[j]).text(arrForCount[j]*arrForValue[j]*arrForPercent[j]);
  734. //$($resultDiv[j]).text(arrForCount[j]*arrForValue[j]*arrForPercent[j]);
  735. }
  736. //result=result+arrForCount[j]*arrForValue[j]*arrForPercent[j];
  737. }
  738. }
  739. }
  740. // init arrForPencent
  741. //for ( var i = 0; i < array.length; i++) {
  742. // var index =array[i].index;
  743. // var type=array[i].type;
  744. // }
  745. // init arrForValue
  746. //for ( var i = 0; i < array.length; i++) {
  747. // var index =array[i].index;
  748. //var type=array[i].type;
  749. //}
  750. //alert(arrForValue.length);
  751. //for ( var i = 0; i < arrForValue.length; i++) {
  752. //alert(arrForCount[i]);
  753. //alert(arrForValue[i]);
  754. //alert("arrForPercent"+arrForPercent[i]);
  755. // alert("arrForCount"+arrForCount[i]);
  756. // alert("arrForValue"+arrForValue[i]);
  757. //}
  758. //alert(result);
  759. //alert(arg.render);
  760. //$(arg.render).html(result.toFixed(2));
  761. }
  762. /**
  763. �����ͷ���
  764. */
  765. $.fn.sum = function(arg) {
  766. $trs=$("#tableData tr");
  767. var rows=1;
  768. var result=0;
  769. //alert("============"+$trs.length);
  770. var arrForCount=new Array($trs.length-1);
  771. var arrForValue=new Array($trs.length-1);
  772. var arrForPercent=new Array($trs.length-1);
  773. for ( var i = 0; i < arrForCount.length; i++) {
  774. arrForCount[i]=1;
  775. }
  776. for ( var i = 0; i < arrForPercent.length; i++) {
  777. arrForPercent[i]=1;
  778. }
  779. var array = arg.colmuns;
  780. var edit= arg.edit;
  781. //alert(edit);
  782. // init arrForCount
  783. for ( var i = 0; i < array.length; i++) {
  784. var index =array[i].index;
  785. var type=array[i].type;
  786. if (type=="count")
  787. {
  788. var index =array[i].index;
  789. $a=$("#tableData tr td:nth-child("+index+") :nth-child(1)");
  790. //alert($a.length);
  791. for(var j=0;j<$a.length;j++){
  792. $input =$($a[j]);
  793. if (edit==true) {arrForCount[j]=$input.val();}else {arrForCount[j]=$input.text();}
  794. }
  795. }
  796. if (type=="percent")
  797. {
  798. var index =array[i].index;
  799. $a=$("#tableData tr td:nth-child("+index+") :nth-child(1)");
  800. //alert($a.length);
  801. for(var j=0;j<$a.length;j++){
  802. $input =$($a[j]);
  803. if (edit==true) {arrForPercent[j]=$input.val();}else {arrForPercent[j]=$input.text();}
  804. arrForPercent[j]=arrForPercent[j]*0.01;
  805. }
  806. }
  807. if (type=="value")
  808. {
  809. var index =array[i].index;
  810. $a=$("#tableData tr td:nth-child("+index+") :nth-child(1)");
  811. //alert($a.length);
  812. for(var j=0;j<$a.length;j++){
  813. $input =$($a[j]);
  814. arrForValue[j]=$input.val();
  815. if (edit==true) {arrForValue[j]=$input.val();}else {arrForValue[j]=$input.text();}
  816. result=result+arrForCount[j]*arrForValue[j]*arrForPercent[j];
  817. }
  818. }
  819. }
  820. // init arrForPencent
  821. //for ( var i = 0; i < array.length; i++) {
  822. // var index =array[i].index;
  823. // var type=array[i].type;
  824. // }
  825. // init arrForValue
  826. //for ( var i = 0; i < array.length; i++) {
  827. // var index =array[i].index;
  828. //var type=array[i].type;
  829. //}
  830. //alert(arrForValue.length);
  831. //for ( var i = 0; i < arrForValue.length; i++) {
  832. //alert(arrForCount[i]);
  833. //alert(arrForValue[i]);
  834. //alert("arrForPercent"+arrForPercent[i]);
  835. // alert("arrForCount"+arrForCount[i]);
  836. // alert("arrForValue"+arrForValue[i]);
  837. //}
  838. //alert(result);
  839. //alert(arg.render);
  840. $(arg.render).html(result.toFixed(2));
  841. }
  842. /**
  843. �����ͷ���
  844. */
  845. $.fn.sumForRow = function(arg) {
  846. $trs=$("#tableData tr");
  847. var rows=1;
  848. var result=0;
  849. //alert("============"+$trs.length);
  850. var arrForCount=new Array($trs.length-1);
  851. var arrForValue=new Array($trs.length-1);
  852. var arrForPercent=new Array($trs.length-1);
  853. for ( var i = 0; i < arrForCount.length; i++) {
  854. arrForCount[i]=1;
  855. }
  856. for ( var i = 0; i < arrForPercent.length; i++) {
  857. arrForPercent[i]=1;
  858. }
  859. var array = arg.colmuns;
  860. var edit= arg.edit;
  861. //alert(edit);
  862. // init arrForCount
  863. for ( var i = 0; i < array.length; i++) {
  864. var index =array[i].index;
  865. var type=array[i].type;
  866. if (type=="count")
  867. {
  868. var index =array[i].index;
  869. $a=$("#tableData tr td:nth-child("+index+") :nth-child(1)");
  870. //alert($a.length);
  871. for(var j=0;j<$a.length;j++){
  872. $input =$($a[j]);
  873. if (edit==true) {arrForCount[j]=$input.val();}else {arrForCount[j]=$input.text();}
  874. }
  875. }
  876. }
  877. // init arrForPencent
  878. for ( var i = 0; i < array.length; i++) {
  879. var index =array[i].index;
  880. var type=array[i].type;
  881. if (type=="percent")
  882. {
  883. var index =array[i].index;
  884. $a=$("#tableData tr td:nth-child("+index+") :nth-child(1)");
  885. //alert($a.length);
  886. for(var j=0;j<$a.length;j++){
  887. $input =$($a[j]);
  888. if (edit==true) {arrForPercent[j]=$input.val();}else {arrForPercent[j]=$input.text();}
  889. arrForPercent[j]=arrForPercent[j]*0.01;
  890. }
  891. }
  892. }
  893. // init arrForValue
  894. for ( var i = 0; i < array.length; i++) {
  895. var index =array[i].index;
  896. var type=array[i].type;
  897. if (type=="value")
  898. {
  899. var index =array[i].index;
  900. $a=$("#tableData tr td:nth-child("+index+") :nth-child(1)");
  901. //alert($a.length);
  902. for(var j=0;j<$a.length;j++){
  903. $input =$($a[j]);
  904. arrForValue[j]=$input.val();
  905. if (edit==true) {arrForValue[j]=$input.val();}else {arrForValue[j]=$input.text();}
  906. }
  907. }
  908. }
  909. //alert(arrForValue.length);
  910. for ( var i = 0; i < arrForValue.length; i++) {
  911. //alert(arrForCount[i]);
  912. //alert(arrForValue[i]);
  913. //alert("arrForPercent"+arrForPercent[i]);
  914. // alert("arrForCount"+arrForCount[i]);
  915. // alert("arrForValue"+arrForValue[i]);
  916. result=result+arrForCount[i]*arrForValue[i]*arrForPercent[i];
  917. }
  918. //alert(result);
  919. //alert(arg.render);
  920. $(arg.render).html(result.toFixed(2));
  921. }
  922. /**
  923. �ϲ���Ԫ��ķ���
  924. */
  925. $.fn.join = function(arg) {
  926. var $table=$(this);
  927. var tid =$table.attr("id");
  928. $tbody=$("#"+tid+" tbody:nth-child(1)");
  929. $trs=$tbody.children();
  930. //alert("==="+$trs.length);
  931. var tr=$trs[0];
  932. $tds=$(tr).children();
  933. //alert($tds.length);
  934. $trObj = $("<tr></tr>");
  935. var array = arg.colmuns;
  936. var k=0;
  937. for (var i=0;i<array.length;i++){
  938. var index=array[i].index;
  939. var count=array[i].count;
  940. var title=array[i].title;
  941. for (var j=0;j<$tds.length;j++){
  942. if (j<k) continue;
  943. if (j==index)
  944. {
  945. $tdObj = $("<th colspan=\""+count+"\">"+title+"</th>");
  946. $trObj.append($tdObj);
  947. k=k+count;
  948. }
  949. if (j<index)
  950. {k++;
  951. //��õ�Ԫ��
  952. $td=$($tds[j]);
  953. //ɾ��Ԫ��
  954. $tdObj = $("<th rowspan=\"2\">"+$td.text()+"</th>");
  955. //alert($td.width());
  956. $tdObj.width($td.width());
  957. $td.remove();
  958. $trObj.append($tdObj);}
  959. if (i<(array.length-1))
  960. {
  961. var index_=array[i+1].index;
  962. if (j>=(index+count) && j<index_)
  963. {
  964. k++;
  965. //��õ�Ԫ��
  966. $td=$($tds[j]);
  967. //ɾ��Ԫ��
  968. $tdObj = $("<th rowspan=\"2\">"+$td.text()+"</th>");
  969. //alert($td.width());
  970. $tdObj.width($td.width());
  971. $td.remove();
  972. $trObj.append($tdObj);
  973. }
  974. }
  975. else
  976. {
  977. if (j>=(index+count))
  978. {
  979. k++;
  980. //��õ�Ԫ��
  981. $td=$($tds[j]);
  982. //ɾ��Ԫ��
  983. $tdObj = $("<th rowspan=\"2\">"+$td.text()+"</th>");
  984. $tdObj.width($td.width());//alert($td.width());
  985. $td.remove();
  986. $trObj.append($tdObj);
  987. }
  988. }
  989. }
  990. }
  991. $tbody.prepend($trObj);
  992. }
  993. })(jQuery);