using BizCom; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Reflection; using System.Text; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using SiteCore; public partial class DicPage : BasePage { private DicSysBase dicSysBase; private string cType; System.Data.DataView dv = null; string TreeSelValue = "127"; string rootTitle = "选择模块"; string rootName = "根结点"; protected void Page_Load(object sender, EventArgs e) { //判断权限 //if (!CheckRights()) return; cType = GetString("t"); hClass.Value = cType; //if (cType.Equals("")) //{ // ShowErrorPage(); // return; //} //string cn = getDicClassName(cType); //if (cn == "") //{ // ShowErrorPage(); // return; //} dicSysBase = (DicSysBase)GetReflectionObject(cType); PageInit(); if (!Page.IsPostBack) { int mId = GetInt("mId"); TreeSelValue = mId.ToString(); initTree(); transDataBind(); } } public void PageInit() { switch (cType.ToLower()) { case "ceerporganization": { selShop.Visible = true; designTable.Visible = true; selOld.Visible = true; break; } case "ceerpmodular": case "serpmodular": case "xmodular": { trOperate.Visible = true; trUrl.Visible = true; trTag.Visible = true; trIcon.Visible = true; btnBuild.Visible = true; break; } case "hoststation": { trHostFieldName.Visible = true; trHostName.Visible = true; trMaxStock.Visible = true; trWaringStock.Visible = true; break; } default: { trOperate.Visible = false; trUrl.Visible = false; trTag.Visible = false; break; } } } #region lefttree private void initTree() { StringBuilder str = new StringBuilder(); str.AppendFormat("treeData={0};", GetTreeData()); if (TreeSelValue != "") str.AppendFormat("treeSel=\"{0}\";", TreeSelValue); litTree.Text = ""; } DataTable resources = null; public string GetTreeData() { resources = dicSysBase.GetDataTable(); dv = new System.Data.DataView(resources); StringBuilder str = new StringBuilder(); str.Append("["); if (cType == "org") { dv.RowFilter = "ParentID=0"; str.Append("{\"id\":\"" + dv[0]["ID"] + "\",\"name\":\"" + dv[0]["Name"] + "\",\"expanded\": true}"); GetTree(ref str, dv[0]["ID"], 0); } else { str.Append("{\"id\":\"0\",\"name\":\"" + dicSysBase.rootName + "\",\"expanded\": true}"); GetTree(ref str, 0, 0); } str.Append("]"); return str.ToString(); } private void GetTree(ref StringBuilder str, object parentID, int idx) { dv.RowFilter = "ParentID=" + parentID; dv.Sort = "Sort asc"; if (dv.Count < 1) { return; } foreach (DataRowView drv in dv) { str.Append(",{"); str.AppendFormat("\"id\":\"{0}\",\"name\":\"{1}\",\"pid\":\"{2}\",\"expanded\": {3}", drv["ID"], drv["Name"], parentID, "false"); str.Append("}"); GetTree(ref str, drv["ID"], 2); idx++; } } #endregion private void transDataBind() { DataTable dt = null; if (cType == "modular") { dt = XModular.GetModularNoOperate(); } else { dt = resources; } System.Data.DataView dv = new System.Data.DataView(dt); getTransTree(dv, 0); } private void getTransTree(System.Data.DataView dv, object id) { dv.RowFilter = "parentid=" + id; foreach (DataRowView dr in dv) { selTrans.Items.Add(new System.Web.UI.WebControls.ListItem(getNodeName(dr["Name"], dr["Path"]), dr["ID"].ToString())); getTransTree(dv, dr["ID"]); } } private string getNodeName(object name, object path) { if (path.ToString() == "") return name.ToString(); int len = path.ToString().Split('|').Length - 2; return "".PadLeft(len, ' ') + name; } }