TemplateRelationList.aspx.cs 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Web;
  6. using System.Web.UI;
  7. using System.Web.UI.WebControls;
  8. using CB.Admin.Plugins.TrendChartConfig;
  9. using CB.Common;
  10. using CB.Data;
  11. using CB.Entity;
  12. using CB.Framework;
  13. namespace CB.Admin.Plugins.Template
  14. {
  15. public partial class TemplateRelationList : AdminPage
  16. {
  17. private IList<CB.Entity.TrendChartInfo> TrendChartList;
  18. private IList<CB.Entity.TemplateInfo> TemplateList;
  19. private IList<CB.Entity.TemplateTypeInfo> TemplateTypeList;
  20. private IList<CB.Entity.TemplateRelationInfo> TemplateRelationLists;
  21. protected void Page_Load(object sender, EventArgs e)
  22. {
  23. TrendChartList = TrendChartService.ToList();
  24. TemplateList = TemplateService.ToList();
  25. TemplateTypeList = TemplateTypeService.ToList();
  26. TemplateRelationLists = TemplateRelationService.ToList();
  27. if (!Page.IsPostBack)
  28. {
  29. InitData();
  30. }
  31. }
  32. protected override void InitData()
  33. {
  34. BindRepeaterList();
  35. BindTree();
  36. }
  37. protected void btnSearch_Click(object sender, EventArgs e)
  38. {
  39. BindRepeaterList();
  40. }
  41. protected override void BindRepeaterList()
  42. {
  43. int recordCount;
  44. repeaterList.DataSource = null;
  45. var list = CB.Data.TemplateRelationService.ToPaging(new Entity.TemplateRelationInfo() { ChartId = getTrendChartId(txtChartname.Text.Trim()) }, AspNetPager1.PageSize, AspNetPager1.CurrentPageIndex, out recordCount);
  46. repeaterList.DataSource = list;
  47. repeaterList.DataBind();
  48. BindTrendChart();
  49. }
  50. protected void repeaterList_ItemCommand(object source, RepeaterCommandEventArgs e)
  51. {
  52. if ("dndel" == e.CommandName)
  53. {
  54. if (CB.Data.TemplateRelationService.Delete(TypeConverter.ObjectToInt(e.CommandArgument)))
  55. Logs("删除模板关系成功", string.Format("模板关系[ID={0}]", e.CommandArgument));
  56. BindRepeaterList();
  57. }
  58. if ("edit" == e.CommandName)
  59. {
  60. Entity.TemplateRelationInfo Entity = CB.Data.TemplateRelationService.Get(TypeConverter.ObjectToInt(e.CommandArgument));
  61. if (null == Entity)
  62. return;
  63. labID.Text = Entity.Id.ToString();
  64. ddlChartId.SelectedValue = Entity.ChartId.ToString();
  65. BindTree(Entity.ChartId);
  66. }
  67. if ("isEnable" == e.CommandName)
  68. {
  69. IList<CB.Entity.TemplateRelationInfo> addList = new List<TemplateRelationInfo>();
  70. int id = TypeConverter.ObjectToInt(e.CommandArgument);
  71. TemplateRelationInfo entity = TemplateRelationLists.ToList().Find((p) => { return p.Id == id; });
  72. entity.IsEnable = true;
  73. addList.Add(entity);
  74. foreach (var item in TemplateRelationLists)
  75. {
  76. if (item.Id != id && item.ChartId == entity.ChartId)
  77. {
  78. addList.Add(new TemplateRelationInfo()
  79. {
  80. Id = item.Id,
  81. ChartId = item.ChartId,
  82. TemplateId = item.TemplateId,
  83. TemplateTypeId = item.TemplateTypeId,
  84. IsEnable = false
  85. });
  86. }
  87. }
  88. foreach (var item in addList)
  89. {
  90. if (TemplateRelationService.Save(item))
  91. Logs("修改模板关系成功", string.Format("修改模板关系成功[ID={0}]", item.Id));
  92. }
  93. ShowMessageBox("提示:修改成功!", string.Format("TemplateRelationList.aspx?authPage={0}", authPage));
  94. }
  95. }
  96. protected void AspNetPager1_PageChanged(object sender, EventArgs e)
  97. {
  98. BindRepeaterList();
  99. }
  100. //修改或者保存
  101. protected void btnEdit_Click(object sender, EventArgs e)
  102. {
  103. Tuple<bool, string> validate = Validate();
  104. if (validate.Item1) //通过验证
  105. {
  106. string _modules = txtModules.Value;
  107. List<TemplateRelationInfo> list = new List<TemplateRelationInfo>();
  108. string[] _data = _modules.Split(',');
  109. foreach (string item in _data)
  110. {
  111. if (!string.IsNullOrEmpty(item) && item != "0")
  112. {
  113. list.Add(new TemplateRelationInfo()
  114. {
  115. Id = labID.Text.ToInt(),
  116. ChartId = ddlChartId.SelectedValue.ToInt(),
  117. TemplateId = item.ToInt(),
  118. TemplateTypeId = getTemplateTypeId(item.ToInt()),
  119. IsEnable = getIsEnable( ddlChartId.SelectedValue.ToInt(),item.ToInt())
  120. });
  121. }
  122. }
  123. //删除以前配置
  124. TemplateRelationService.DeleteChartId(ddlChartId.SelectedValue.ToInt());
  125. foreach (var entity in list)
  126. {
  127. if (TemplateRelationService.Save(entity))
  128. Logs("修改模板关系成功", string.Format("修改模板关系成功[ID={0}]", entity.Id));
  129. }
  130. if (labID.Text != "") //修改
  131. {
  132. ShowMessageBox("提示:修改成功!", string.Format("TemplateRelationList.aspx?authPage={0}", authPage));
  133. }
  134. else //新增
  135. {
  136. ShowMessageBox("提示:新增成功!", string.Format("TemplateRelationList.aspx?authPage={0}", authPage));
  137. }
  138. ClearPage();
  139. }
  140. else
  141. {
  142. Response.Write(string.Format("<script>alert('{0}');window.opener.location.href=window.opener.location.href;</script>", validate.Item2));
  143. }
  144. BindRepeaterList();
  145. }
  146. //数据验证
  147. public Tuple<bool, string> Validate()
  148. {
  149. if (ddlChartId.SelectedValue == "-1")
  150. return new Tuple<bool, string>(false, "请选择名称!");
  151. return new Tuple<bool, string>(true, "验证通过!");
  152. }
  153. //清空
  154. protected void btnClear_Click(object sender, EventArgs e)
  155. {
  156. ClearPage();
  157. }
  158. //清空界面数据
  159. protected void ClearPage()
  160. {
  161. labID.Text = "";
  162. ddlChartId.SelectedValue = "-1";
  163. BindTree();
  164. }
  165. protected void BindTrendChart()
  166. {
  167. ddlChartId.Items.Clear();
  168. ddlChartId.Items.Add(new ListItem("==请选择==", "-1"));
  169. foreach (var item in TrendChartList)
  170. {
  171. ddlChartId.Items.Add(new ListItem(item.Name, item.Id.ToString()));
  172. }
  173. }
  174. protected string getTrendChartName(object id)
  175. {
  176. int TrendChartId = TypeConverter.ObjectToInt(id);
  177. foreach (var item in TrendChartList)
  178. {
  179. if (item.Id == TrendChartId)
  180. {
  181. return item.Name;
  182. }
  183. }
  184. return "";
  185. }
  186. protected string getTemplateName(object id)
  187. {
  188. int TemplateId = TypeConverter.ObjectToInt(id);
  189. foreach (var item in TemplateList)
  190. {
  191. if (item.Id == TemplateId)
  192. {
  193. return item.Name;
  194. }
  195. }
  196. return "";
  197. }
  198. protected string getTemplateTypeName(object id)
  199. {
  200. int TemplateTypeId = TypeConverter.ObjectToInt(id);
  201. foreach (var item in TemplateTypeList)
  202. {
  203. if (item.Id == TemplateTypeId)
  204. {
  205. return item.Name;
  206. }
  207. }
  208. return "";
  209. }
  210. protected string getIsEnable(object txt)
  211. {
  212. if (TypeConverter.ObjectToBool(txt, false))
  213. {
  214. return "启用";
  215. }
  216. else
  217. {
  218. return "禁用";
  219. }
  220. }
  221. protected bool getIsEnable(int chartid, int templateid)
  222. {
  223. foreach (var item in TemplateRelationLists)
  224. {
  225. if (item.ChartId == chartid && item.TemplateId == templateid)
  226. {
  227. return item.IsEnable;
  228. }
  229. }
  230. return false;
  231. }
  232. protected int getTrendChartId(string name)
  233. {
  234. foreach (var item in TrendChartList)
  235. {
  236. if (item.Name == name)
  237. {
  238. return item.Id;
  239. }
  240. }
  241. return 0;
  242. }
  243. protected int getTemplateTypeId(int template)
  244. {
  245. foreach (var item in TemplateList)
  246. {
  247. if (item.Id == template)
  248. {
  249. return item.TemplateTypeId;
  250. }
  251. }
  252. return 0;
  253. }
  254. protected void BindTree(int chartid = 0)
  255. {
  256. litPrivilege.Text = "";
  257. List<int> havetemplates;
  258. havetemplates = TemplateRelationLists.ToList().FindAll((info) => { return info.ChartId == chartid; }).Select(
  259. (en) => { return en.TemplateId; }).ToList();
  260. StringBuilder sp = new StringBuilder(2000);
  261. sp.Append("<ul>");
  262. sp.AppendFormat("<li tname=\"-1\" class=\"jstree-open\" tvalue=\"{0}\"><a>{1}</a>", 0, "模板");
  263. sp.Append("<ul>");
  264. foreach (var item in TemplateList)
  265. {
  266. if (havetemplates.Contains(item.Id))
  267. {
  268. sp.AppendFormat("<li tname=\"-1\" class=\"jstree-checked jstree-icon \" tvalue=\"{0}\"><a>{1}</a></li>", item.Id, item.Name);
  269. continue;
  270. }
  271. sp.AppendFormat("<li tname=\"-1\" class=\"jstree-icon jstree-last jstree-leaf jstree-unchecked \" tvalue=\"{0}\"><a>{1}</a></li>", item.Id, item.Name);
  272. }
  273. sp.Append("</ul>");
  274. sp.Append("</li>");
  275. sp.Append("</ul>");
  276. litPrivilege.Text = sp.ToString();
  277. }
  278. protected void ddlChartId_SelectedIndexChanged(object sender, EventArgs e)
  279. {
  280. BindTree(ddlChartId.SelectedValue.ToInt());
  281. }
  282. }
  283. }