PageRenderTime 104ms CodeModel.GetById 35ms RepoModel.GetById 1ms app.codeStats 0ms

/Tosouth/WWW/A/controls/UCCategory.ascx

http://lefter.googlecode.com/
ASP.NET | 508 lines | 474 code | 34 blank | 0 comment | 98 complexity | 8299787faa9acce1982f8831505fce13 MD5 | raw file
  1. <%@ Control Language="C#" AutoEventWireup="true" CodeFile="UCCategory.ascx.cs" Inherits="A_controls_UCCategory" %>
  2. <script type="text/javascript">
  3. var fun_uc_cat_add, fun_uc_cat_modified, fun_uc_cat_canceld;
  4. function uc_cat_init_buttons() {
  5. $('#uc_cat_addAera').hide();
  6. $('#uc_cat_saveAera').hide();
  7. $("input:text", "#dialog_category").removeAttr('readOnly');
  8. }
  9. function AddCategory(pid, onadded, oncanceld) {
  10. fun_uc_cat_add = fun_uc_cat_canceld = null;
  11. if (typeof (onadded) == "function") fun_uc_cat_add = onadded;
  12. if (typeof (oncanceld) == "function") fun_uc_cat_canceld = onadded;
  13. $('#uc_cat_tbName').val('');
  14. $('#uc_cat_tbOrder').val('');
  15. uc_cat_init_buttons();
  16. $('#uc_cat_addAera').show();
  17. $("#dialog_category").dialog({
  18. width: 450,
  19. height: 200,
  20. modal: true,
  21. resizable: false,
  22. title: "????",
  23. zIndex: 101,
  24. close: function() {
  25. if (fun_uc_cat_canceld) {
  26. fun_uc_cat_canceld.call(this);
  27. }
  28. fun_uc_cat_add = null;
  29. fun_uc_cat_canceld = null;
  30. }
  31. });
  32. //set Category
  33. var slt = $('#uc_cat_sltParent').empty().cascadeselect('clear', false);
  34. uc_init_category(pid, '#uc_cat_sltParent', '#dialog_category');
  35. }
  36. function ViewCategory(data) {
  37. if (!data) return;
  38. $('#tbCId').val(data.CategoryId);
  39. $('#uc_cat_tbName').val(data.CategoryName);
  40. $('#uc_cat_tbOrder').val(data.Order);
  41. uc_cat_init_buttons();
  42. $("#dialog_category").dialog({
  43. width: 450,
  44. height: 200,
  45. modal: true,
  46. resizable: false,
  47. title: "????",
  48. zIndex: 101,
  49. close: function() {
  50. if (fun_uc_cat_canceld) {
  51. fun_uc_cat_canceld.call(this);
  52. }
  53. fun_uc_cat_modified = null;
  54. fun_uc_cat_canceld = null;
  55. }
  56. });
  57. //set Category
  58. var slt = $('#uc_cat_sltParent').empty().cascadeselect('clear', false);
  59. uc_init_category(data.ParentCategoryId, '#uc_cat_sltParent', '#dialog_category', function() { $('#uc_cat_sltParent', '#dialog_category').cascadeselect('disable'); });
  60. $("input:text", "#dialog_category").attr('readOnly', 'readOnly');
  61. }
  62. function ModifyCategory(data, onmodified, oncanceld) {
  63. fun_uc_cat_modified = fun_uc_cat_canceld = null;
  64. if (!data || !data.CategoryId || data.ParentCategoryId == undefined || data.ParentCategoryId == null) {
  65. return;
  66. }
  67. if (typeof (onmodified) == "function") fun_uc_cat_modified = onmodified;
  68. if (typeof (oncanceld) == "function") fun_uc_cat_canceld = onadded;
  69. $('#tbCId').val(data.CategoryId);
  70. $('#uc_cat_tbName').val(data.CategoryName);
  71. $('#uc_cat_tbOrder').val(data.Order);
  72. uc_cat_init_buttons();
  73. $('#uc_cat_saveAera').show();
  74. $("#dialog_category").dialog({
  75. width: 450,
  76. height: 200,
  77. modal: true,
  78. resizable: false,
  79. title: "????",
  80. zIndex: 101,
  81. close: function() {
  82. if (fun_uc_cat_canceld) {
  83. fun_uc_cat_canceld.call(this);
  84. }
  85. fun_uc_cat_modified = null;
  86. fun_uc_cat_canceld = null;
  87. }
  88. });
  89. //set Category
  90. var slt = $('#uc_cat_sltParent').empty().cascadeselect('clear', false);
  91. uc_init_category(data.ParentCategoryId, '#uc_cat_sltParent', '#dialog_category');
  92. }
  93. function BatchAddCategory(pid, onadded, oncanceld) {
  94. fun_uc_cat_add = fun_uc_cat_canceld = null;
  95. if (typeof (onadded) == "function") fun_uc_cat_add = onadded;
  96. if (typeof (oncanceld) == "function") fun_uc_cat_canceld = onadded;
  97. $('#uc_cat_bat_tbName').val('');
  98. $("#dialog_category_batchadd").dialog({
  99. width: 450,
  100. height: 340,
  101. modal: true,
  102. resizable: false,
  103. title: "??????",
  104. zIndex: 101,
  105. close: function() {
  106. if (fun_uc_cat_canceld) {
  107. fun_uc_cat_canceld.call(this);
  108. }
  109. fun_uc_cat_add = null;
  110. fun_uc_cat_canceld = null;
  111. }
  112. });
  113. //set Category
  114. var slt = $('#uc_cat_bat_sltParent').empty().cascadeselect('clear', false);
  115. uc_init_category(pid, '#uc_cat_bat_sltParent', '#dialog_category_batchadd');
  116. }
  117. function DeleteCategory(arr, ondeleted, onerror) {
  118. fun_uc_cat_deleted = fun_uc_cat_error = null;
  119. if (!arr || arr.length < 1) {
  120. if (onerror && typeof (onerror) == 'function')
  121. onerror.call(this, "CategoryId ?????");
  122. return; ;
  123. }
  124. var idStr = arr.join(',');
  125. $.ajax({ url: "ajax.aspx?action=deletecategoryies&categoryids=" + idStr,
  126. async: false,
  127. dataType: "json",
  128. type: 'GET',
  129. success: function(d) {
  130. d = eval(d);
  131. if (d.Result) {
  132. if (ondeleted && typeof (ondeleted) == 'function')
  133. ondeleted.call(this, d.Result);
  134. } else if (onerror && typeof (onerror) == 'function') {
  135. onerror.call(this, d.Error);
  136. }
  137. },
  138. error: function(XMLHttpRequest, textStatus, errorThrown) {
  139. if (onerror && typeof (onerror) == 'function')
  140. onerror.call(this, errorThrown);
  141. }
  142. });
  143. }
  144. function uc_cat_add() {
  145. var data = {};
  146. data.CategoryName = $('#uc_cat_tbName').val();
  147. data.ParentCategoryId = $('#uc_cat_sltParent').cascadeselect('getvalue');
  148. data.Order = $('#uc_cat_tbOrder').val();
  149. if (data.CategoryName == null || $.trim(data.CategoryName) == '') {
  150. alert('????????');
  151. return;
  152. }
  153. if (data.ParentCategoryId == null || isNaN(data.ParentCategoryId)) {
  154. alert('????????');
  155. return;
  156. }
  157. if (data.Order == null || isNaN(data.Order)) {
  158. alert('???????????');
  159. return;
  160. }
  161. $.ajax({
  162. url: "ajax.aspx?action=addcategory",
  163. async: false,
  164. dataType: "json",
  165. data: data,
  166. type: 'POST',
  167. beforeSend: function() {
  168. $('#dialog_category').masklayer('show', { zIndex: 102, Text: '????????...' });
  169. },
  170. success: function(d) {
  171. d = eval(d);
  172. if (!d.Error) {
  173. if (fun_uc_cat_add) {
  174. fun_uc_cat_add.call(this, data);
  175. }
  176. fun_uc_cat_add = fun_uc_cat_canceld = null;
  177. $("#dialog_category").dialog("close");
  178. } else {
  179. alert('??????????' + d.Error);
  180. }
  181. },
  182. error: function(XMLHttpRequest, textStatus, errorThrown) {
  183. alert('????????????' + errorThrown);
  184. },
  185. complete: function() {
  186. $('#dialog_category').masklayer('hide');
  187. }
  188. });
  189. }
  190. function uc_cat_save() {
  191. var data = {};
  192. data.CategoryId = $('#tbCId').val();
  193. data.CategoryName = $('#uc_cat_tbName').val();
  194. data.ParentCategoryId = $('#uc_cat_sltParent').cascadeselect('getvalue');
  195. data.Order = $('#uc_cat_tbOrder').val();
  196. if (!data.CategoryId) {
  197. alert('????CategoryId?');
  198. return;
  199. }
  200. //alert('?????????????????');
  201. if (!data.CategoryName || $.trim(data.CategoryName) == '') {
  202. alert('????????');
  203. return;
  204. }
  205. if (!data.ParentCategoryId || isNaN(data.ParentCategoryId)) {
  206. alert('????????');
  207. return;
  208. }
  209. if (data.Order == null || isNaN(data.Order)) {
  210. alert('???????????');
  211. return;
  212. }
  213. $.ajax({
  214. url: "ajax.aspx?action=savecategory",
  215. async: false,
  216. dataType: "json",
  217. data: data,
  218. type: 'POST',
  219. beforeSend: function() {
  220. $('#dialog_category').masklayer('show', { zIndex: 102, Text: '????????...' });
  221. },
  222. success: function(d) {
  223. d = eval(d);
  224. if (!d.Error) {
  225. if (fun_uc_cat_modified) {
  226. fun_uc_cat_modified.call(this, true, (!!d.Result ? eval(d.Result) : data));
  227. }
  228. fun_uc_cat_modified = fun_uc_cat_canceld = null;
  229. $("#dialog_category").dialog("close");
  230. } else {
  231. alert('??????????' + d.Error);
  232. }
  233. },
  234. error: function(XMLHttpRequest, textStatus, errorThrown) {
  235. alert('????????????' + errorThrown);
  236. },
  237. complete: function() {
  238. $('#dialog_category').masklayer('hide');
  239. }
  240. });
  241. }
  242. function uc_cat_bat_add() {
  243. var name, pid;
  244. name = $('#uc_cat_bat_tbName').val();
  245. pid = $('#uc_cat_bat_sltParent').cascadeselect('getvalue');
  246. if (name == null || $.trim(name) == '') {
  247. alert('????????');
  248. return;
  249. }
  250. if (pid == null || isNaN(pid)) {
  251. alert('????????');
  252. return;
  253. }
  254. $.ajax({
  255. url: "ajax.aspx?action=bataddcategory",
  256. async: false,
  257. dataType: "json",
  258. data: { 'name': name, 'pid': pid },
  259. type: 'POST',
  260. beforeSend: function() {
  261. $('#dialog_category_batchadd').masklayer('show', { zIndex: 102, Text: '????????...' });
  262. },
  263. success: function(d) {
  264. d = eval(d);
  265. if (!d.Error) {
  266. if (fun_uc_cat_add) {
  267. fun_uc_cat_add.call(this, pid);
  268. }
  269. fun_uc_cat_add = fun_uc_cat_canceld = null;
  270. $("#dialog_category_batchadd").dialog("close");
  271. } else {
  272. alert('??????????' + d.Error);
  273. }
  274. },
  275. error: function(XMLHttpRequest, textStatus, errorThrown) {
  276. alert('????????????' + errorThrown);
  277. },
  278. complete: function() {
  279. $('#dialog_category_batchadd').masklayer('hide');
  280. }
  281. });
  282. }
  283. function uc_cat_bat_cancel() {
  284. if (fun_uc_cat_canceld) {
  285. fun_uc_cat_canceld.call(this);
  286. }
  287. fun_uc_cat_add = fun_uc_cat_modified = fun_uc_cat_canceld = null;
  288. $("#dialog_category_batchadd").dialog("close");
  289. }
  290. function uc_cat_cancel() {
  291. if (fun_uc_cat_canceld) {
  292. fun_uc_cat_canceld.call(this);
  293. }
  294. fun_uc_cat_add = fun_uc_cat_modified = fun_uc_cat_canceld = null;
  295. $("#dialog_category").dialog("close");
  296. }
  297. function uc_cat_init_category(categoryId, slt, container) {
  298. $.ajax({
  299. url: "ajax.aspx?action=getrecursiveparents&cid=" + categoryId,
  300. //async: false,
  301. dataType: "json",
  302. beforeSend: function() {
  303. $(container).masklayer('show', { zIndex: 102, Text: '??????...' });
  304. },
  305. success: function(data) {
  306. if (data.Result) {
  307. data = eval(data.Result);
  308. var hash = [];
  309. while (data.length > 0) {
  310. hash.push((data.shift()).CategoryId);
  311. }
  312. $.ajax({ url: "ajax.aspx?action=getcategories",
  313. async: false,
  314. dataType: "json",
  315. success: function(data) {
  316. if (data.Result) {
  317. data = eval(data.Result);
  318. if (hash) {
  319. var sid = hash.shift();
  320. if (!!sid) {
  321. var i = 0, len = data.length, str = '';
  322. while (i < len) {
  323. str += "<option value='" + data[i].CategoryId + "'";
  324. if (data[i].CategoryId == sid) {
  325. str += " selected='selected'";
  326. }
  327. str += ">" + data[i].CategoryName + "</options>";
  328. i++;
  329. }
  330. $(slt).append(str);
  331. } else {
  332. hash = null;
  333. }
  334. $(slt).cascadeselect({
  335. url: 'ajax.aspx?action=getcategories',
  336. key: 'pid',
  337. type: "GET",
  338. valuedatafield: 'CategoryId',
  339. textdatafield: 'CategoryName',
  340. selecteddatafield: 'S', //'Selected',
  341. unselectedoption: { value: '@', text: '?????' },
  342. beforebinding: function() {
  343. $(container).masklayer('show', { zIndex: 102, Text: '??????...' });
  344. },
  345. ondatabinding: function(select, data) {
  346. if (data.Result) {
  347. data = data.Result;
  348. if (data.length == 0) {
  349. $(select).remove();
  350. hash = null;
  351. return false;
  352. }
  353. if (hash) {
  354. var sid = hash.shift();
  355. if (!!sid) {
  356. var i = 0, len = data.length;
  357. while (i < len) {
  358. if (data[i].CategoryId == sid) {
  359. data[i].S = true;
  360. }
  361. i++;
  362. }
  363. if (i == len) {
  364. hash = null;
  365. }
  366. } else {
  367. hash = null;
  368. }
  369. }
  370. return data;
  371. } else {
  372. return false;
  373. }
  374. },
  375. oncompleted: function() {
  376. if (!hash)
  377. $(container).masklayer('hide');
  378. }
  379. });
  380. }
  381. }
  382. }
  383. });
  384. }
  385. },
  386. complete: function() {
  387. $(container).masklayer('hide');
  388. }
  389. });
  390. }
  391. </script>
  392. <div id='dialog_category'>
  393. <input type="hidden" id="tbCId" />
  394. <table>
  395. <colgroup>
  396. <col width="100px;" />
  397. <col width="340px;" />
  398. </colgroup>
  399. <tr>
  400. <td>
  401. ??
  402. </td>
  403. <td>
  404. <input type="text" id="uc_cat_tbName" style="width: 320px;" />
  405. </td>
  406. </tr>
  407. <tr>
  408. <td>
  409. ?????
  410. </td>
  411. <td>
  412. <select id='uc_cat_sltParent'>
  413. </select>
  414. </td>
  415. </tr>
  416. <tr>
  417. <td>
  418. ???
  419. </td>
  420. <td>
  421. <input type="text" id="uc_cat_tbOrder" style="width: 40px;" />??1???????????????
  422. </td>
  423. </tr>
  424. <tr>
  425. <td colspan="2" style="text-align: right;">
  426. <div id="uc_cat_addAera">
  427. <button onclick='uc_cat_add();'>
  428. ? ?</button>
  429. <button onclick='uc_cat_cancel();'>
  430. ? ?</button>
  431. </div>
  432. <div id="uc_cat_saveAera">
  433. <button onclick='uc_cat_save();'>
  434. ? ?</button>
  435. <button onclick='uc_cat_cancel();'>
  436. ? ?</button>
  437. </div>
  438. </td>
  439. </tr>
  440. </table>
  441. </div>
  442. <div id='dialog_category_batchadd'>
  443. <table>
  444. <colgroup>
  445. <col width="100px" />
  446. <col width="340px" />
  447. </colgroup>
  448. <tr>
  449. <td>
  450. ?????
  451. </td>
  452. <td>
  453. <select id='uc_cat_bat_sltParent'>
  454. </select>
  455. </td>
  456. </tr>
  457. <tr>
  458. <td>
  459. ?????
  460. </td>
  461. <td>
  462. <textarea id="uc_cat_bat_tbName" cols="40" rows="8"></textarea>
  463. </td>
  464. </tr>
  465. <tr>
  466. <td colspan="2" style="text-align: right;">
  467. <button onclick='uc_cat_bat_add();'>
  468. ? ?</button>
  469. <button onclick='uc_cat_bat_cancel();'>
  470. ? ?</button>
  471. </td>
  472. </tr>
  473. </table>
  474. </div>