Tree.master.cs 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Data;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Web;
  7. using System.Web.UI;
  8. using System.Web.UI.WebControls;
  9. using Utils;
  10. using SiteCore;
  11. public partial class MasterPage_Tree : System.Web.UI.MasterPage
  12. {
  13. TreeBasePage _bp = null;
  14. ITreePage _it = null;
  15. protected override void OnInit(EventArgs e)
  16. {
  17. _bp = this.Page as TreeBasePage;
  18. _it = this.Page as ITreePage;
  19. //时间
  20. _bp._searchDate = _bp.GetString("dt");
  21. if (_bp._searchDate == "")
  22. {
  23. _bp._filterDate = DateTime.Now;
  24. _bp._searchDate = _bp._filterDate.ToString("yyyy-MM-dd");
  25. }
  26. else _bp._filterDate = Convert.ToDateTime(_bp._searchDate);
  27. if (!IsPostBack)
  28. {
  29. if (!_bp.CheckRights()) return;
  30. if (!_bp._selfCheckPermission)
  31. {
  32. //权限
  33. if (!InitPermission()) return;
  34. }
  35. //_bp.leftWidth
  36. m_tree_div.Attributes.Add("Width", _bp.leftWidth.ToString());
  37. m_tree_div.Attributes.Add("MaxWidth", (_bp.leftWidth+100).ToString());
  38. //加载树形数据
  39. InitTree(_it.GetTreeData());
  40. }
  41. string path = CommonHelper.GetPrePath();
  42. StringBuilder str = new StringBuilder();
  43. str.AppendFormat("<script src=\"{0}/js/boot.js?v={1}\" type=\"text/javascript\"></script>", path, BasePage.SiteVer);
  44. str.AppendFormat("<script src=\"{0}/js/tree_view.js?v={1}\" type=\"text/javascript\"></script>", path, BasePage.SiteVer);
  45. str.AppendFormat("<link href=\"{0}/css/tree.css?v={1}\" rel=\"stylesheet\" />", path, BasePage.SiteVer);
  46. Literal lt = new Literal();
  47. lt.Text = str.ToString();
  48. Page.Header.Controls.AddAt(1, lt);
  49. base.OnInit(e);
  50. }
  51. protected void Page_Load(object sender, EventArgs e)
  52. {
  53. m_tree_div.Attributes.Add("title", _bp.TreeTitle);
  54. filterPanel.Visible = _bp._showFilter;
  55. if (!IsPostBack)
  56. {
  57. hDate.Value = _bp._searchDate;
  58. initSearch(_bp._searchFilter);
  59. //keyPlace.Visible = _bp._keyFilterVisible;
  60. if (_bp.TreeSelValue != null) _bp._script.AppendFormat("treeSel=\"{0}\";", _bp.TreeSelValue);
  61. if(_bp._script.Length>0)
  62. litScript.Text = "<script type=\"text/javascript\">"+_bp._script.ToString()+"</script>";
  63. }
  64. }
  65. private void initSearch(string filter)
  66. {
  67. if (filter == "") return;
  68. string[] sArr = filter.Split(',');
  69. StringBuilder str = new StringBuilder();
  70. switch (_bp._searchDateEnum)
  71. {
  72. case SearchDateEnum.OneDay:
  73. {
  74. str.AppendLine("日期:<input id=\"txtEdate\" class=\"mini-datepicker\" style=\"width:100px;\" onvaluechanged=\"dateChangeFn\" format=\"yyyy-MM-dd\" />");
  75. break;
  76. }
  77. case SearchDateEnum.OneMonth:
  78. {
  79. str.AppendLine("日期:<input id=\"txtEdate\" class=\"mini-datepicker\" style=\"width:100px;\" onvaluechanged=\"dateChangeFn\" format=\"yyyy-M\"/>");
  80. break;
  81. }
  82. default:
  83. {
  84. str.AppendLine("日期:<input id=\"txtSdate\" class=\"mini-datepicker\" style=\"width:100px;\" onvaluechanged=\"dateChangeFn\" format=\"yyyy-MM-dd\" />");
  85. str.AppendLine("-&nbsp;<input id=\"txtEdate\" class=\"mini-datepicker\" style=\"width:100px;\" onvaluechanged=\"dateChangeFn\" format=\"yyyy-MM-dd\" />");
  86. break;
  87. }
  88. }
  89. str.AppendLine("<span id=\"sp_date_filter\">");
  90. for (int i = 0; i < sArr.Length; i++)
  91. {
  92. str.AppendLine(" &nbsp;<a href=\"###\">" + sArr[i] + "</a>");
  93. }
  94. str.AppendLine("</span>");
  95. litSearch.Text = str.ToString();
  96. }
  97. // 初始化树
  98. private void InitTree(object tree)
  99. {
  100. if (tree == null)
  101. {
  102. m_tree_div.Visible = false;
  103. return;
  104. }
  105. StringBuilder str = new StringBuilder();
  106. string tId = Request.QueryString["tId"];
  107. if (!string.IsNullOrEmpty(tId)) _bp.TreeSelValue = tId;
  108. if (tree.ToString()!="")str.AppendFormat("treeData={0};", tree);
  109. _bp.AppendScript(str.ToString());
  110. }
  111. #region 初始化权限
  112. private bool InitPermission()
  113. {
  114. if (_bp.PmTag == "")
  115. {
  116. _bp.ShowError("您当前没有权限查看该页面");
  117. return false;
  118. }
  119. DataTable dt = WebUser.GetPermission(_bp.PKey);
  120. System.Data.DataView dv = new System.Data.DataView(dt);
  121. dv.RowFilter = string.Format("tag='{0}' or tag like '{0}_%'", _bp.PmTag);
  122. if (dv.Count < 1)
  123. {
  124. _bp.ShowError("您当前没有权限查看该页面");
  125. return false;
  126. }
  127. string tag;
  128. StringBuilder str = new StringBuilder();
  129. int i = 0;
  130. foreach (DataRowView drv in dv)
  131. {
  132. tag = drv["Tag"].ToString();
  133. if (tag.IndexOf("_") == -1) continue;
  134. tag = tag.Replace(_bp.PmTag + "_", "");
  135. _bp._permissions.Add(tag);//加入权限
  136. if (tag == "view") continue;
  137. str.Append((i > 0 ? "|" : "") + tag + "," + drv["Name"]);
  138. i++;
  139. }
  140. if (str.Length > 0)
  141. _bp.AppendScript("actionData=\"" + str.ToString() + "\";");
  142. return true;
  143. }
  144. #endregion
  145. }