using BizCom; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using SiteCore; public partial class Ehr_PostManage :TreeBasePage,ITreePage { protected override void OnPreInit(EventArgs e) { PmTag = "postmanage"; TreeTitle = "选择组织机构"; ContentTitle = "职位"; TreeSelValue = "0"; } protected void Page_Load(object sender, EventArgs e) { //权限 if (_permissions.Contains("add")) btnAdd.Visible = true; if (!IsPostBack) { //if (CurrentUser.IsAdmin) //{ // tr_module.Visible = true; // modulesDataBind(); //} } } #region 左边数据 System.Data.DataView dv = null; public object GetTreeData() { StringBuilder str = new StringBuilder(); str.Append("["); DataTable resources = CeErpOrganization.Get(); int i = 0; if (resources != null && resources.Rows.Count > 0) { dv = new System.Data.DataView(resources); dv.RowFilter = "parentid=0"; foreach (DataRowView drv in dv) { if (i == 0) { TreeSelValue = drv["ID"]; str.Append("{"); } else str.Append(",{"); str.AppendFormat("\"id\":\"{0}\",\"name\":\"{1}\",\"path\":\"\",\"expanded\": true", drv["ID"], drv["Name"]); str.Append("}"); GetOtherTree(drv["ID"], ref str); i++; } } str.Append("]"); return str.ToString(); } private void GetOtherTree(object id, ref StringBuilder str) { dv.RowFilter = "ParentID=" + id; dv.Sort = "Sort asc"; if (dv.Count < 1) { return; } foreach (DataRowView drv in dv) { str.Append(",{"); str.AppendFormat("\"id\":\"{0}\",\"name\":\"{1}\",\"pid\":\"{2}\",\"path\":\"{3}\",\"expanded\": true", drv["ID"], drv["Name"], drv["ParentID"],drv["Path"]); str.Append("}"); GetOtherTree(drv["ID"], ref str); } } #endregion private void modulesDataBind() { DataTable dt = CeErpModular.GetModularNoOperate(); System.Data.DataView dv = new System.Data.DataView(dt); selModules.Items.Add(new System.Web.UI.WebControls.ListItem("--请选择--", "0")); getModulesTree(dv, 0); } private void getModulesTree(System.Data.DataView dv, object id) { dv.RowFilter = "parentid=" + id; foreach (DataRowView dr in dv) { selModules.Items.Add(new System.Web.UI.WebControls.ListItem(getNodeName(dr["Name"], dr["Path"]), dr["ID"].ToString())); getModulesTree(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; } }