PageRenderTime 52ms CodeModel.GetById 25ms RepoModel.GetById 0ms app.codeStats 0ms

/Tosouth/WWW/A/controls/UCItem.ascx

http://lefter.googlecode.com/
ASP.NET | 560 lines | 525 code | 35 blank | 0 comment | 84 complexity | a622de4b30261a102ba110e74eca7a20 MD5 | raw file
  1. <%@ Control Language="C#" AutoEventWireup="true" CodeFile="UCItem.ascx.cs" Inherits="A_controls_UCItem" %>
  2. <script type="text/javascript">
  3. var uc_fun_add, uc_fun_modified, uc_fun_canceld;
  4. var uc_fun_bat_add, uc_fun_bat_canceld;
  5. function BatchAddItem(categoryId, onadded, oncanceld) {
  6. if (!categoryId) return;
  7. uc_fun_bat_add = uc_fun_bat_canceld = null;
  8. if (typeof (onadded) == "function") uc_fun_bat_add = onadded;
  9. if (typeof (oncanceld) == "function") uc_fun_bat_canceld = oncanceld;
  10. $('#uc_item_bat_tbTitle').val('');
  11. $('#uc_item_bat_tbUrl').val('');
  12. $("#dialog_item_batchadd").dialog({
  13. width: 780,
  14. height: 400,
  15. modal: true,
  16. resizable: false,
  17. title: "??????",
  18. zIndex: 101,
  19. close: function() {
  20. if (uc_fun_bat_canceld) {
  21. uc_fun_bat_canceld.call(this);
  22. }
  23. uc_fun_bat_add = uc_fun_bat_canceld = null;
  24. }
  25. });
  26. //set Category
  27. var slt = $('#uc_item_bat_sltCategory').empty().cascadeselect('clear', false);
  28. uc_init_category(categoryId, '#uc_item_bat_sltCategory', '#dialog_item_batchadd');
  29. }
  30. function uc_item_bat_add() {
  31. var cid = $('#uc_item_bat_sltCategory').cascadeselect('getvalue');
  32. if (!cid) {
  33. alert('??????');
  34. return;
  35. }
  36. var titleStr = $('#uc_item_bat_tbTitle').val();
  37. var urlStr = $('#uc_item_bat_tbUrl').val();
  38. if (titleStr.length < 1) {
  39. alert('???????');
  40. return;
  41. }
  42. $.ajax({
  43. url: "ajax.aspx?action=addbatitem&cid=" + cid,
  44. async: false,
  45. dataType: "json",
  46. data: { 'title': titleStr, 'url': urlStr },
  47. type: 'POST',
  48. beforeSend: function() {
  49. $('#dialog_item_batchadd').masklayer('show', { zIndex: 102, Text: '????????...' });
  50. },
  51. success: function(d) {
  52. d = eval(d);
  53. if (!d.Error) {
  54. if (uc_fun_bat_add) {
  55. uc_fun_bat_add.call(this, cid);
  56. }
  57. uc_fun_bat_add = uc_fun_bat_canceld = null;
  58. $("#dialog_item_batchadd").dialog("close");
  59. } else {
  60. alert('??????????' + d.Error);
  61. }
  62. },
  63. error: function(XMLHttpRequest, textStatus, errorThrown) {
  64. alert('????????????' + errorThrown);
  65. },
  66. complete: function() {
  67. $('#dialog_item_batchadd').masklayer('hide');
  68. }
  69. });
  70. }
  71. function uc_item_bat_cancel() {
  72. if (uc_fun_bat_canceld) {
  73. uc_fun_bat_canceld.call(this);
  74. }
  75. uc_fun_bat_add = uc_fun_bat_canceld = null;
  76. $("#dialog_item_batchadd").dialog("close");
  77. }
  78. function uc_init_buttons() {
  79. $('#uc_modifyArea').hide();
  80. $('#uc_addArea').hide();
  81. $('#uc_chkArea').hide();
  82. }
  83. function DeleteItems(arr, ondeleted, onerror) {
  84. if (!arr || arr.length < 1) return;
  85. var idStr = arr.join(',');
  86. $.ajax({ url: "ajax.aspx?action=deleteitems&itemids=" + idStr,
  87. async: false,
  88. dataType: "json",
  89. type: 'GET',
  90. success: function(d) {
  91. d = eval(d);
  92. if (d.Result) {
  93. if (ondeleted)
  94. ondeleted.call(this, d.Result);
  95. } else if (onerror) {
  96. onerror.call(this, d.Error);
  97. }
  98. },
  99. error: function(XMLHttpRequest, textStatus, errorThrown) {
  100. if (onerror)
  101. onerror.call(this, errorThrown);
  102. }
  103. });
  104. }
  105. function CheckItems(arr, onchcked, onerror) {
  106. if (!arr || arr.length < 1) return;
  107. var idStr = arr.join(',');
  108. $.ajax({ url: "ajax.aspx?action=checkitems&itemids=" + idStr,
  109. async: false,
  110. dataType: "json",
  111. type: 'GET',
  112. success: function(d) {
  113. d = eval(d);
  114. if (d.Result) {
  115. if (onchcked)
  116. onchcked.call(this, d.Result);
  117. } else if (onerror) {
  118. onerror.call(this, d.Error);
  119. }
  120. },
  121. error: function(XMLHttpRequest, textStatus, errorThrown) {
  122. if (onerror)
  123. onerror.call(this, errorThrown);
  124. }
  125. });
  126. }
  127. function AddItem(categoryId, onadded, oncanceld) {
  128. if (!categoryId) return;
  129. uc_fun_add = uc_fun_canceld = null;
  130. if (typeof (onadded) == "function") uc_fun_add = onadded;
  131. if (typeof (oncanceld) == "function") uc_fun_canceld = oncanceld;
  132. //set value;
  133. $('#tbId').val('');
  134. $('#uc_item_tbTitle').val('');
  135. $('#uc_item_tbDescription').val('');
  136. $('#uc_item_tbLinkUrl').val('');
  137. $('#uc_item_tbLogo').val('');
  138. $('#uc_item_tbTopState').val('');
  139. uc_init_buttons();
  140. $('#uc_addArea').show();
  141. $("#dialog_item").dialog({
  142. width: 450,
  143. height: 360,
  144. modal: true,
  145. resizable: false,
  146. title: "????",
  147. zIndex: 101,
  148. close: function() {
  149. if (uc_fun_canceld) {
  150. uc_fun_canceld.call(this);
  151. }
  152. uc_fun_modified = null;
  153. uc_fun_canceld = null;
  154. }
  155. });
  156. //set Category
  157. var slt = $('#uc_item_sltCategory').empty().cascadeselect('clear', false);
  158. uc_init_category(categoryId, '#uc_item_sltCategory', '#dialog_item');
  159. }
  160. function ModifyItem(data, onmodified, oncanceld) {
  161. if (!data) return;
  162. uc_fun_modified = uc_fun_canceld = null;
  163. if (typeof (onmodified) == "function") uc_fun_modified = onmodified;
  164. if (typeof (oncanceld) == "function") uc_fun_canceld = oncanceld;
  165. //set value;
  166. $('#tbId').val(data.ItemId);
  167. $('#uc_item_tbTitle').val(data.Title);
  168. $('#uc_item_tbDescription').val(data.Description);
  169. $('#uc_item_tbLinkUrl').val(data.LinkUrl);
  170. $('#uc_item_tbLogo').val(data.LogoPath);
  171. $('#uc_item_tbTopState').val(data.TopState);
  172. uc_init_buttons();
  173. if (!!data.IsChecked) {
  174. $('#uc_modifyArea').show();
  175. } else {
  176. $('#uc_chkArea').show();
  177. }
  178. $("#dialog_item").dialog({
  179. width: 450,
  180. height: 360,
  181. modal: true,
  182. resizable: false,
  183. title: "????",
  184. zIndex: 101,
  185. close: function() {
  186. if (uc_fun_canceld) {
  187. uc_fun_canceld.call(this);
  188. }
  189. uc_fun_modified = null;
  190. uc_fun_canceld = null;
  191. }
  192. });
  193. //set Category
  194. var slt = $('#uc_item_sltCategory').empty().cascadeselect('clear', false);
  195. uc_init_category(data.CategoryId, '#uc_item_sltCategory', '#dialog_item');
  196. }
  197. function uc_init_category(categoryId, slt, container, callback) {
  198. $.ajax({
  199. url: "ajax.aspx?action=getrecursiveparents&cid=" + categoryId,
  200. //async: false,
  201. dataType: "json",
  202. beforeSend: function() {
  203. $(container).masklayer('show', { zIndex: 102, Text: '??????...' });
  204. },
  205. success: function(data) {
  206. if (data.Result) {
  207. data = eval(data.Result);
  208. var hash = [];
  209. while (data.length > 0) {
  210. hash.push((data.shift()).CategoryId);
  211. }
  212. $.ajax({ url: "ajax.aspx?action=getcategories",
  213. async: false,
  214. dataType: "json",
  215. success: function(data) {
  216. if (data.Result) {
  217. data = eval(data.Result);
  218. if (hash) {
  219. var sid = hash.shift();
  220. var i = 0, len = data.length, str = '';
  221. while (i < len) {
  222. str += "<option value='" + data[i].CategoryId + "'";
  223. if (data[i].CategoryId == sid) {
  224. str += " selected='selected'";
  225. }
  226. str += ">" + data[i].CategoryName + "</option>";
  227. i++;
  228. }
  229. $(slt).append(str);
  230. if (!sid) {
  231. $(slt).prepend("<option value='@' selected='selected'>???</option>");
  232. hash = null;
  233. }
  234. $(slt).removeAttr('disabled');
  235. $(slt).cascadeselect({
  236. url: 'ajax.aspx?action=getcategories',
  237. key: 'pid',
  238. type: "GET",
  239. valuedatafield: 'CategoryId',
  240. textdatafield: 'CategoryName',
  241. selecteddatafield: 'S', //'Selected',
  242. unselectedoption: { value: '@', text: '?????' },
  243. beforebinding: function() {
  244. $(container).masklayer('show', { zIndex: 102, Text: '??????...' });
  245. },
  246. ondatabinding: function(select, data) {
  247. if (data.Result) {
  248. data = data.Result;
  249. if (data.length == 0) {
  250. $(select).remove();
  251. hash = null;
  252. return false;
  253. }
  254. if (hash) {
  255. var sid = hash.shift();
  256. if (!!sid) {
  257. var i = 0, len = data.length;
  258. while (i < len) {
  259. if (data[i].CategoryId == sid) {
  260. data[i].S = true;
  261. }
  262. i++;
  263. }
  264. if (i == len) {
  265. hash = null;
  266. }
  267. } else {
  268. hash = null;
  269. }
  270. }
  271. return data;
  272. } else {
  273. return false;
  274. }
  275. },
  276. oncompleted: function() {
  277. if (!hash) {
  278. $(container).masklayer('hide');
  279. if (callback && typeof callback == "function")
  280. callback.call(this);
  281. }
  282. }
  283. });
  284. }
  285. }
  286. }
  287. });
  288. }
  289. },
  290. complete: function() {
  291. $(container).masklayer('hide');
  292. }
  293. });
  294. }
  295. function uc_item_add() {
  296. var data = {}, invalidsucceed = true, msg = '';
  297. data.Title = $('#uc_item_tbTitle').val();
  298. data.CategoryId = $('#uc_item_sltCategory').cascadeselect('getvalue');
  299. data.Description = $('#uc_item_tbDescription').val();
  300. data.LinkUrl = $('#uc_item_tbLinkUrl').val();
  301. data.LogoPath = $('#uc_item_tbLogo').val();
  302. data.TopState = $('#uc_item_tbTopState').val();
  303. data.IsChecked = true;
  304. if (invalidsucceed && $.trim(data.Title).length == 0) {
  305. msg = '???????';
  306. invalidsucceed = false;
  307. }
  308. if (invalidsucceed && isNaN(data.CategoryId)) {
  309. msg = '??????';
  310. invalidsucceed = false;
  311. }
  312. if (!invalidsucceed) {
  313. alert(msg);
  314. return;
  315. }
  316. $.ajax({
  317. url: "ajax.aspx?action=additem",
  318. async: false,
  319. dataType: "json",
  320. data: data,
  321. type: 'POST',
  322. beforeSend: function() {
  323. $('#dialog_item').masklayer('show', { zIndex: 102, Text: '????????...' });
  324. },
  325. success: function(d) {
  326. d = eval(d);
  327. if (!d.Error) {
  328. if (uc_fun_add) {
  329. uc_fun_add.call(this, data);
  330. }
  331. uc_fun_add = null;
  332. uc_fun_canceld = null;
  333. $("#dialog_item").dialog("close");
  334. } else {
  335. alert('??????????' + d.Error);
  336. }
  337. },
  338. error: function(XMLHttpRequest, textStatus, errorThrown) {
  339. alert('????????????' + errorThrown);
  340. },
  341. complete: function() {
  342. $('#dialog_item').masklayer('hide');
  343. }
  344. });
  345. }
  346. function uc_item_save() {
  347. var data = {}, invalidsucceed = true, msg = '';
  348. data.ItemId = $('#tbId').val();
  349. data.Title = $('#uc_item_tbTitle').val();
  350. data.CategoryId = $('#uc_item_sltCategory').cascadeselect('getvalue');
  351. data.Description = $('#uc_item_tbDescription').val();
  352. data.LinkUrl = $('#uc_item_tbLinkUrl').val();
  353. data.LogoPath = $('#uc_item_tbLogo').val();
  354. data.TopState = $('#uc_item_tbTopState').val();
  355. data.IsChecked = true;
  356. if (!data.ItemId) {
  357. msg = 'ItemID???';
  358. invalidsucceed = false;
  359. }
  360. if (invalidsucceed && $.trim(data.Title).length == 0) {
  361. msg = '???????';
  362. invalidsucceed = false;
  363. }
  364. if (invalidsucceed && isNaN(data.CategoryId)) {
  365. msg = '??????';
  366. invalidsucceed = false;
  367. }
  368. if (!invalidsucceed) {
  369. alert(msg);
  370. return;
  371. }
  372. var str = decodeURIComponent(data);
  373. $.ajax({
  374. url: "ajax.aspx?action=saveitem",
  375. async: false,
  376. dataType: "json",
  377. data: data,
  378. type: 'POST',
  379. beforeSend: function() {
  380. $('#dialog_item').masklayer('show', { zIndex: 102, Text: '????????...' });
  381. },
  382. success: function(d) {
  383. d = eval(d);
  384. if (!d.Error) {
  385. if (uc_fun_modified) {
  386. uc_fun_modified.call(this, true, (!!d.Result ? eval(d.Result) : data));
  387. }
  388. uc_fun_modified = null;
  389. uc_fun_canceld = null;
  390. $("#dialog_item").dialog("close");
  391. } else {
  392. alert('??????????' + d.Error);
  393. }
  394. },
  395. error: function(XMLHttpRequest, textStatus, errorThrown) {
  396. alert('????????????' + errorThrown);
  397. },
  398. complete: function() {
  399. $('#dialog_item').masklayer('hide');
  400. }
  401. });
  402. }
  403. function uc_item_cancel() {
  404. if (uc_fun_canceld) {
  405. uc_fun_canceld.call(this);
  406. }
  407. uc_fun_modified = null;
  408. uc_fun_canceld = null;
  409. $("#dialog_item").dialog("close");
  410. }
  411. </script>
  412. <div id="dialog_item">
  413. <input type="hidden" id="tbId" />
  414. <table>
  415. <tr>
  416. <td>
  417. <label>
  418. ????</label>
  419. </td>
  420. <td>
  421. <input type="text" id="uc_item_tbTitle" style="width: 332px;" />
  422. </td>
  423. </tr>
  424. <tr>
  425. <td>
  426. <label>
  427. ??</label>
  428. </td>
  429. <td>
  430. <select id="uc_item_sltCategory">
  431. </select>
  432. </td>
  433. </tr>
  434. <tr>
  435. <td>
  436. <label>
  437. ????</label>
  438. </td>
  439. <td>
  440. <textarea id="uc_item_tbDescription" cols="50" rows="4"></textarea>
  441. </td>
  442. </tr>
  443. <tr>
  444. <td>
  445. <label>
  446. ????</label>
  447. </td>
  448. <td>
  449. <input type="text" id="uc_item_tbLinkUrl" style="width: 332px;" />
  450. </td>
  451. </tr>
  452. <tr>
  453. <td>
  454. <label>
  455. Logo</label>
  456. </td>
  457. <td>
  458. <input type="text" id='uc_item_tbLogo' style="width: 332px;" />
  459. </td>
  460. </tr>
  461. <tr>
  462. <td>
  463. <label>
  464. ???</label>
  465. </td>
  466. <td>
  467. <input type="text" id="uc_item_tbTopState" style="width: 30px;" />
  468. </td>
  469. </tr>
  470. <tr>
  471. <td colspan="2" style="text-align: right;">
  472. <div id="uc_modifyArea" style="display: none;">
  473. <button type="button" onclick="uc_item_save();">
  474. ????</button>
  475. <button type="button" onclick="uc_item_cancel();">
  476. ? ?</button>
  477. </div>
  478. <div id="uc_chkArea" style="display: none;">
  479. <button type="button" onclick="uc_item_save();">
  480. ?????????</button>
  481. <button type="button" onclick="uc_item_cancel();">
  482. ? ?</button>
  483. </div>
  484. <div id="uc_addArea" style="display: none;">
  485. <button type="button" onclick="uc_item_add();">
  486. ????</button>
  487. <button type="button" onclick="uc_item_cancel();">
  488. ? ?</button>
  489. </div>
  490. </td>
  491. </tr>
  492. </table>
  493. </div>
  494. <div id="dialog_item_batchadd">
  495. <table>
  496. <tr>
  497. <td colspan="2">
  498. <select id="uc_item_bat_sltCategory">
  499. </select>
  500. </td>
  501. </tr>
  502. <tr>
  503. <td>
  504. <fieldset>
  505. <legend>??</legend>
  506. <textarea id="uc_item_bat_tbTitle" cols="50" rows="10"></textarea>
  507. </fieldset>
  508. </td>
  509. <td>
  510. <fieldset>
  511. <legend>????</legend>
  512. <textarea id="uc_item_bat_tbUrl" cols="50" rows="10"></textarea>
  513. </fieldset>
  514. </td>
  515. </tr>
  516. <tr>
  517. <td colspan="2" style="text-align: right;">
  518. <button onclick="uc_item_bat_add();">
  519. ? ?</button>
  520. <button onclick="uc_item_bat_cancel();">
  521. ? ?</button>
  522. </td>
  523. </tr>
  524. </table>
  525. </div>