using BizCom; using SQLData; 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 Sys_UserPermission : TreeBasePage, ITreePage { protected override void OnPreInit(EventArgs e) { PmTag = "permission"; TreeTitle = "选择用户"; ContentTitle = "配置权限"; _selfCheckPermission = true; TreeSelValue = "0"; } protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { modulesDataBind(); } } private void modulesDataBind() { StringBuilder sql = new StringBuilder(); sql.AppendFormat("select * from x_Modular where isdel=0 and isoperate=0 order by path asc, sort asc ;"); DataSet ds = DbHelper.DbConn.ExecuteDataset(sql.ToString()); DataTable dt = ds.Tables[0]; System.Data.DataView dv = new System.Data.DataView(dt); //selModules.Items.Add(new System.Web.UI.WebControls.ListItem("--请选择--", "0")); getModulesTree(dv, 0); //DataTable dt1 = ds.Tables[1]; //foreach (DataRow dr in dt1.Rows) //{ // selIndex.Items.Add(new ListItem(dr["name"].ToString(), dr["ID"].ToString())); // selView.Items.Add(new ListItem(dr["name"].ToString(), dr["ID"].ToString())); //} } 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; } #region 左边数据 System.Data.DataView dv = null; System.Data.DataView pdv = null; int si = 0; public object GetTreeData() { StringBuilder str = new StringBuilder(); str.Append("["); StringBuilder sql = new StringBuilder(); //if (CurrentUser.IsAdmin) // sql.AppendFormat("select id,name from ce_erporganization where parentid=0 order by sort asc ;"); //else sql.AppendFormat("select * from x_user order by id asc ;"); //sql.AppendFormat("select * from view_erppost order by Path asc, sort asc ;"); DataSet ds = DbHelper.DbConn.ExecuteDataset(sql.ToString()); if (ds != null && ds.Tables[0].Rows.Count < 1) return null; DataTable dt = ds.Tables[0]; dv = new DataView(ds.Tables[0]); //pdv = new DataView(ds.Tables[1]); GetOtherTree(0, ref str); 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) { GetPostTree(id, ref str); return; } foreach (DataRowView drv in dv) { if (si == 0) str.Append("{"); else str.Append(",{"); str.AppendFormat("\"id\":\"o_{0}\",\"name\":\"{1}\",\"pid\":\"o_{2}\",\"expanded\": true", drv["ID"], drv["account"], id); str.Append("}"); si++; //GetOtherTree(drv["ID"], ref str); } } private void GetPostTree(object id, ref StringBuilder str) { pdv.RowFilter = " OrgID=" + id; if (pdv.Count < 1) { return; } foreach (DataRowView drv in pdv) { str.Append(",{"); str.AppendFormat("\"id\":\"p_{0}\",\"name\":\"{1}\",\"pid\":\"o_{2}\",\"orgId\":\"{3}\",\"expanded\": true", drv["ID"], drv["Name"], id, drv["OrgID"]); str.Append("}"); } } #endregion }