using System; using System.Data; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI.WebControls; using SuperMap.RealEstate.ServiceModel; using SuperMap.RealEstate.Web.UI.WebControls; using SuperMap.RealEstate.Web.Utility; using SuperMap.RealEstate.CoreFrameWork; using SuperMap.RealEstate.CoreFrameWork.Dictionary.Business; using FWB = SuperMap.RealEstate.FrameWork.Business; using WFSB = SuperMap.RealEstate.WorkFlow.Support.Business; using HZQR.Common; namespace Personnel.WebSite.Modules.Users { public partial class BasePage : SuperMap.RealEstate.Web.UI.PageValid { #region 方法 -> RoleType.GetParentRoleType /// /// 父对象 /// public FWB.RoleType GetParentRoleType(FWB.RoleType _RoleType, Transaction _Transaction) { FWB.RoleType _Parent = null; if ((_RoleType.RoleType_PID.HasValue) && (_RoleType.RoleType_PID.Value != -1)) { _Parent = new FWB.RoleType(_Transaction); _Parent.AddSearchParameter("RoleType_ID", _RoleType.RoleType_PID); if (!_Parent.Search()) { _Parent.Dispose(); _Parent = null; } } return _Parent; } #endregion #region 方法 -> UserType.Parent FWB.UserType _Parent = null; /// public FWB.UserType Parent { get { return _Parent; } set { _Parent = value; } } /// /// 父对象 /// public FWB.UserType GetParent(FWB.UserType _UserType, Transaction _Transaction) { if ((_UserType.UserType_PID != null) && (_UserType.UserType_PID.HasValue) && (_UserType.UserType_PID.Value != -1)) { _Parent = new FWB.UserType(_Transaction); if (this.Transaction != null) { _Parent.Transaction = Transaction; } _Parent.AddSearchParameter("UserType_ID", _UserType.UserType_PID); if (!_Parent.Search()) { _Parent.Dispose(); _Parent = null; } } return _Parent; } #endregion #region 方法 -> 获取枚举下拉列表 public static void GetItem(string FieldExplain_Field, List items, Transaction transaction, string pid, DataTable _DataTable = null, int level = 0, string OtherCondition = "") { if (_DataTable == null) { FieldExplain _FieldExplain = DictionaryHelper.GetFieldExplain(FieldExplain_Field, transaction); FieldEnum _FieldEnum = new FieldEnum(_FieldExplain); _DataTable = _FieldEnum.GetBindingDataSource(_FieldExplain.FieldExplain_ID.ToString(), string.Empty, string.Empty); } //过滤 foreach (DataRow _DataRow in _DataTable.Rows) { if (_DataRow["FieldEnum_PID"].ToString() != pid) { continue; } if (_DataRow["FieldEnum_Value"].ToString() != OtherCondition) { ListItemEx _ListItem = new ListItemEx(); _ListItem.Value = _DataRow["FieldEnum_Value"].ToString(); _ListItem.Text = _DataRow["FieldEnum_Name"].ToString(); _ListItem.Level = level; if (_DataRow["FieldEnum_Status"].ToString() != "1") { _ListItem.Enabled = false; } else { _ListItem.Enabled = true; } items.Add(_ListItem); GetItem(FieldExplain_Field, items, transaction, _DataRow["FieldEnum_ID"].ToString(), _DataTable, level + 1); } } } #endregion #region 方法 -> GetBindingDataSource /// public static DataTable GetBindingDataSource(string pid, Transaction _Transaction) { return GetBindingDataSource(pid, string.Empty, _Transaction, "UserType", ""); } /// public static DataTable GetBindingDataSource(string pid, string obscureName, Transaction _Transaction, string DataType = "UserType", string OtherCondition = "") { DataTable DataSource = new DataTable(); string format = "", arg2 = "", arg3 = "", fullSQLString = ""; switch (DataType) { case "RoleType": format = "select * from T_RoleType where {0} {1} order by RoleType_PID,RoleType_Index,RoleType_ID"; arg2 = string.IsNullOrEmpty(pid) ? "1 = 1" : "RoleType_PID = " + pid; arg3 = string.IsNullOrEmpty(obscureName) ? "" : " AND RoleType_Name LIKE '%" + obscureName + "%'"; fullSQLString = string.Format(format, arg2, arg3 + OtherCondition); FWB.RoleType _RoleType = new FWB.RoleType(_Transaction); DataSource = _RoleType.ExecuteDataTable(fullSQLString, null, 0, 0); break; case "UserType": format = "SELECT * FROM PLATFORM_FRAMEWORK.T_USERTYPE WHERE {0} {1} ORDER BY USERTYPE_PID,USERTYPE_INDEX,USERTYPE_NAME"; arg2 = string.IsNullOrEmpty(pid) ? "1 = 1" : "USERTYPE_PID = " + pid; arg3 = string.IsNullOrEmpty(obscureName) ? "" : " AND USERTYPE_NAME LIKE '%" + obscureName + "%'"; fullSQLString = string.Format(format, arg2, arg3 + OtherCondition); FWB.UserType _USERTYPE = new FWB.UserType(_Transaction); DataSource = _USERTYPE.ExecuteDataTable(fullSQLString, null, 0, 0); break; case "ProDefType": format = "SELECT * FROM WORKFLOW_SUPPORT.T_ProDefType WHERE {0} {1} ORDER BY PRODEFTYPE_PID,PRODEFTYPE_INDEX,PRODEFTYPE_NAME"; arg2 = string.IsNullOrEmpty(pid) ? "1 = 1" : "PRODEFTYPE_PID = " + pid; arg3 = string.IsNullOrEmpty(obscureName) ? "" : " AND PRODEFTYPE_NAME LIKE '%" + obscureName + "%'"; fullSQLString = string.Format(format, arg2, arg3 + OtherCondition); WFSB.ProDefType _ProDefType = new WFSB.ProDefType(_Transaction); DataSource = _ProDefType.ExecuteDataTable(fullSQLString, null, 0, 0); break; case "ProDef": format = "SELECT * FROM WORKFLOW_SUPPORT.T_ProDef WHERE {0} {1} ORDER BY PRODEFTYPE_ID,PRODEF_INDEX,PRODEF_NAME"; arg2 = string.IsNullOrEmpty(pid) ? "1 = 1" : "PRODEFTYPE_ID = " + pid; arg3 = string.IsNullOrEmpty(obscureName) ? "" : " AND PRODEF_NAME LIKE '%" + obscureName + "%'"; fullSQLString = string.Format(format, arg2, arg3 + OtherCondition); WFSB.ProDef _ProDef = new WFSB.ProDef(_Transaction); DataSource = _ProDef.ExecuteDataTable(fullSQLString, null, 0, 0); break; } return DataSource; } #endregion #region 方法 -> BindingTreeView public static void BindingTreeView(Transaction _Transaction, string pid, TreeNodeCollection nodes, string DataType, string obscureName, bool withChildNodes, string ID_Encrypt, bool IsUser = false, string CanUrl = "", string UserCanUrl = "", bool ShowCheckBoxes = false, string OtherCondition = "", string OtherUserCondition = "", DataTable _DataTable = null, DataTable UserTable = null, bool IsShowDefault = true, string parameter = "") { FWB.UserType _USERTYPE = new FWB.UserType(_Transaction); if (_DataTable == null || UserTable == null) { _DataTable = GetBindingDataSource("", string.Empty, _Transaction, DataType, OtherCondition); } DataRow[] DataRowList = null; string NextPID = ""; switch (DataType) { case "RoleType": DataRowList = _DataTable.Select("RoleType_PID = " + (string.IsNullOrEmpty(pid) ? "-1" : pid)); if (UserTable == null) { UserTable = _USERTYPE.ExecuteDataTable("SELECT * FROM PLATFORM_FRAMEWORK.T_Role WHERE 1=1" + OtherUserCondition); } break; case "UserType": DataRowList = _DataTable.Select("USERTYPE_PID = " + (string.IsNullOrEmpty(pid) ? "-1" : pid)); if (UserTable == null) { UserTable = _USERTYPE.ExecuteDataTable("SELECT * FROM PLATFORM_FRAMEWORK.T_USER WHERE 1=1" + OtherUserCondition); } break; case "ProDefType": DataRowList = _DataTable.Select("PRODEFTYPE_PID = " + (string.IsNullOrEmpty(pid) ? "-1" : pid)); break; case "ProDef": DataRowList = _DataTable.Select("PRODEFTYPE_ID = " + (string.IsNullOrEmpty(pid) ? "-1" : pid)); break; } foreach (DataRow _DataRow in DataRowList) { TreeNode treeNode = new TreeNode(); treeNode.ShowCheckBox = ShowCheckBoxes; switch (DataType) { case "RoleType": NextPID = _DataRow["RoleType_ID"].ToString(); treeNode.Text = _DataRow["RoleType_NAME"].ToString(); if (CanUrl == "") { treeNode.NavigateUrl = UriHelper.AddRequestToUrl("RoleTypePage.aspx?ID=" + _DataRow["RoleType_ID"].ToEncrypt(), "Module_ID", ID_Encrypt); treeNode.NavigateUrl += parameter; } else if (CanUrl == "#") { treeNode.NavigateUrl = "#"; } else { treeNode.NavigateUrl = UriHelper.AddRequestToUrl(CanUrl + "ID=" + _DataRow["RoleType_ID"].ToEncrypt(), "Module_ID", ID_Encrypt); treeNode.NavigateUrl += parameter; } treeNode.Value = _DataRow["RoleType_ID"].ToString(); treeNode.ImageToolTip = "RoleType"; treeNode.ImageUrl = TreeNodeImageUrl.RoleType; break; case "UserType": NextPID = _DataRow["UserType_ID"].ToString(); treeNode.Text = _DataRow["USERTYPE_NAME"].ToString(); if (CanUrl == "") { treeNode.NavigateUrl = UriHelper.AddRequestToUrl("USERTYPEPage.aspx?ID=" + _DataRow["USERTYPE_ID"].ToEncrypt(), "Module_ID", ID_Encrypt); treeNode.NavigateUrl += parameter; } else if (CanUrl == "#") { treeNode.NavigateUrl = "#"; } else { treeNode.NavigateUrl = UriHelper.AddRequestToUrl(CanUrl + "ID=" + _DataRow["USERTYPE_ID"].ToEncrypt(), "Module_ID", ID_Encrypt); treeNode.NavigateUrl += parameter; } treeNode.Value = _DataRow["USERTYPE_ID"].ToString(); treeNode.ImageToolTip = "UserType"; treeNode.ImageUrl = TreeNodeImageUrl.UserType; break; case "ProDefType": NextPID = _DataRow["ProDefType_ID"].ToString(); treeNode.Text = _DataRow["ProDefType_NAME"].ToString(); if (CanUrl == "") { treeNode.NavigateUrl = UriHelper.AddRequestToUrl("ProDefTypePage.aspx?ID=" + _DataRow["ProDefType_ID"].ToEncrypt(), "Module_ID", ID_Encrypt); treeNode.NavigateUrl += parameter; } else if (CanUrl == "#") { treeNode.NavigateUrl = "#"; } else { treeNode.NavigateUrl = UriHelper.AddRequestToUrl(CanUrl + "ID=" + _DataRow["ProDefType_ID"].ToEncrypt(), "Module_ID", ID_Encrypt); treeNode.NavigateUrl += parameter; } treeNode.Value = _DataRow["ProDefType_ID"].ToString(); treeNode.ImageToolTip = "ProDefType"; treeNode.ImageUrl = TreeNodeImageUrl.ProDefType; break; case "ProDef": treeNode.Text = _DataRow["ProDef_NAME"].ToString(); if (CanUrl == "") { treeNode.NavigateUrl = UriHelper.AddRequestToUrl("ProDefPage.aspx?ID=" + _DataRow["ProDef_ID"].ToEncrypt(), "Module_ID", ID_Encrypt); treeNode.NavigateUrl += parameter; } else if (CanUrl == "#") { treeNode.NavigateUrl = "#"; } else { treeNode.NavigateUrl = UriHelper.AddRequestToUrl(CanUrl + "ID=" + _DataRow["ProDef_ID"].ToEncrypt(), "Module_ID", ID_Encrypt); treeNode.NavigateUrl += parameter; } treeNode.Value = _DataRow["ProDef_ID"].ToString(); treeNode.ImageToolTip = "ProDef"; treeNode.ImageUrl = TreeNodeImageUrl.ProDef; break; } treeNode.Expanded = new bool?(false); treeNode.PopulateOnDemand = true; if (!string.IsNullOrEmpty(obscureName) || withChildNodes) { BindingTreeView(_Transaction, NextPID, treeNode.ChildNodes, DataType, obscureName, withChildNodes, ID_Encrypt, IsUser, CanUrl, UserCanUrl, ShowCheckBoxes, OtherCondition, OtherUserCondition, _DataTable, UserTable,IsShowDefault, parameter); treeNode.PopulateOnDemand = false; } if (IsUser) { if (DataType == "RoleType") { foreach (DataRow UserRow in UserTable.Select("RoleType_ID = " + _DataRow["RoleType_ID"].ToString() + (string.IsNullOrEmpty(obscureName) ? "" : " AND RoleType_ID_NAME LIKE '%" + obscureName + "%'"))) { TreeNode _TreeNode = new TreeNode(); _TreeNode.ShowCheckBox = ShowCheckBoxes; _TreeNode.Text = UserRow["Role_NAME"].ToString(); _TreeNode.Value = UserRow["Role_ID"].ToString(); if (UserCanUrl == "") { _TreeNode.NavigateUrl = UriHelper.AddRequestToUrl("RolePage.aspx?ID=" + UserRow["Role_ID"].ToEncrypt(), "Module_ID", ID_Encrypt); _TreeNode.NavigateUrl += parameter; } else if (UserCanUrl == "#") { _TreeNode.NavigateUrl = "#"; } else { _TreeNode.NavigateUrl = UriHelper.AddRequestToUrl(UserCanUrl + "ID=" + _DataRow["RoleType_ID"].ToEncrypt(), "Module_ID", ID_Encrypt); _TreeNode.NavigateUrl += parameter; } _TreeNode.ImageToolTip = "Role"; _TreeNode.ImageUrl = TreeNodeImageUrl.Role; treeNode.ChildNodes.Add(_TreeNode); } } else if (DataType == "UserType") { foreach (DataRow UserRow in UserTable.Select("USERTYPE_ID = " + _DataRow["USERTYPE_ID"].ToString() + (string.IsNullOrEmpty(obscureName) ? "" : " AND (USER_NAME LIKE '%" + obscureName + "%' OR USER_PASSPORT LIKE '%" + obscureName + "%')"), "USER_INDEX,USER_NAME,USER_ID")) { TreeNode _TreeNode = new TreeNode(); _TreeNode.ShowCheckBox = ShowCheckBoxes; _TreeNode.Text = UserRow["USER_NAME"].ToString() + (UserRow["USER_STATUS"].ToString() == "0" ? "[无效]" : ""); _TreeNode.Value = UserRow["USER_ID"].ToString(); if (UserCanUrl == "") { _TreeNode.NavigateUrl = UriHelper.AddRequestToUrl("USERPage.aspx?ID=" + UserRow["USER_ID"].ToEncrypt() + "&RoleType=" + HttpContext.Current.Request["RoleType"], "Module_ID", ID_Encrypt); _TreeNode.NavigateUrl += parameter; } else if (UserCanUrl == "#") { _TreeNode.NavigateUrl = "#"; } else { _TreeNode.NavigateUrl = UriHelper.AddRequestToUrl(UserCanUrl + "ID=" + _DataRow["USER_ID"].ToEncrypt() + "&RoleType=" + HttpContext.Current.Request["RoleType"], "Module_ID", ID_Encrypt); _TreeNode.NavigateUrl += parameter; } _TreeNode.ImageToolTip = "User"; _TreeNode.ImageUrl = TreeNodeImageUrl.User; treeNode.ChildNodes.Add(_TreeNode); } } } if (!IsShowDefault && treeNode.Text == "系统默认") { } else { nodes.Add(treeNode); } if (!string.IsNullOrEmpty(obscureName)) { if (treeNode.ChildNodes.Count == 0) { if (treeNode.Text.IndexOf(obscureName, StringComparison.CurrentCultureIgnoreCase) < 0) { nodes.Remove(treeNode); } } else { treeNode.Expanded = new bool?(true); } } //else if (treeNode.ChildNodes.Count == 0) //{ // nodes.Remove(treeNode); //} } } #endregion #region 方法 -> BindingDropDownList public static void BindingDropDownList(Transaction _Transaction, List items, string obscureName) { BindingDropDownList(_Transaction, "-1", items, "UserType", obscureName, 0); } //public void BindingDropDownList(List items, string disabledValue, bool status, bool typestatus = false, // bool LastSelect = false, bool ShowCommodity = true) //{ // this.BindingDropDownList(items, disabledValue, status, typestatus, LastSelect, ShowCommodity, false); //} public static void BindingDropDownList(Transaction _Transaction, string pid, List items, string DataType, string obscureName, int level, string OtherCondition = "", string OtherChileCondition = "", bool status = true, bool ShowType = false, DataTable _DataAll = null, string disabledValue = null, bool disabled = true, bool IsShowDefault = true) { string StatusType = "1"; DataRow[] _DataRowList = null; if (_DataAll == null) { _DataAll = GetBindingDataSource("", obscureName, _Transaction, DataType, OtherCondition); } switch (DataType) { case "RoleType": _DataRowList = _DataAll.Select("RoleType_PID = " + (string.IsNullOrEmpty(pid) ? "-1" : pid)); break; case "UserType": _DataRowList = _DataAll.Select("USERTYPE_PID = " + (string.IsNullOrEmpty(pid) ? "-1" : pid)); break; case "ProDefType": _DataRowList = _DataAll.Select("PRODEFTYPE_PID = " + (string.IsNullOrEmpty(pid) ? "-1" : pid)); break; case "ProDef": _DataRowList = _DataAll.Select("PRODEFTYPE_ID = " + (string.IsNullOrEmpty(pid) ? "-1" : pid)); break; } foreach (DataRow _DataRow in _DataRowList) { switch (DataType) { case "ProDef": StatusType = _DataRow["PRODEF_STATUS"].ToString(); break; } if (status && StatusType == "1") { bool HasChild = false; bool _disabled = disabled; ListItemEx listItemEx = new ListItemEx(); switch (DataType) { case "RoleType": listItemEx.Value = _DataRow["RoleType_ID"].ToString(); listItemEx.Text = _DataRow["RoleType_NAME"].ToString(); break; case "UserType": listItemEx.Value = _DataRow["UserType_ID"].ToString(); listItemEx.Text = _DataRow["UserType_NAME"].ToString(); break; case "ProDefType": listItemEx.Value = _DataRow["ProDefType_ID"].ToString(); listItemEx.Text = _DataRow["ProDefType_NAME"].ToString(); break; case "ProDef": listItemEx.Value = _DataRow["ProDef_ID"].ToString(); listItemEx.Text = _DataRow["ProDef_NAME"].ToString(); break; } if (listItemEx.Value == disabledValue) { _disabled = false; } listItemEx.Enabled = _disabled; listItemEx.Level = level; if (!IsShowDefault && listItemEx.Text == "系统默认") { } else { items.Add(listItemEx); BindingDropDownList(_Transaction, listItemEx.Value, items, DataType, obscureName, level + 1, OtherCondition, OtherChileCondition, status, ShowType, _DataAll, disabledValue, _disabled); if (ShowType) { switch (DataType) { case "ProDefType": foreach (WFSB.ProDef _ProDef in new WFSB.ProDef(_Transaction).FillCollection( "WHERE ProDefType_ID = " + listItemEx.Value + OtherChileCondition + " ORDER BY PRODEFTYPE_ID,PRODEF_INDEX,PRODEF_NAME")) { if (status && _ProDef.ProDef_Status == 1) { ListItemEx _ListItemEx = new ListItemEx(); _ListItemEx.Value = _ProDef.ProDef_ID.ToString(); _ListItemEx.Text = _ProDef.ProDef_Name; _ListItemEx.Level = level + 1; items.Add(_ListItemEx); HasChild = true; } } break; } if (!HasChild) { items.Remove(listItemEx); } } } } } } #endregion #region RoleType.BindingDropDownList /// //public void BindingDropDownList(List items, string disabledValue, Transaction _Transaction) //{ // DataTable _DataTable = GetBindingDataSource(string.Empty, string.Empty, _Transaction); // BindingDropDownList(_DataTable.Rows, "-1", items, disabledValue, 0, true, _Transaction); //} //private void BindingDropDownList(DataRowCollection dataRows, string pid, List items, // string disabledValue, int level, bool disabled, Transaction _Transaction) //{ // ListItemEx _ListItem; // foreach (DataRow _Row in dataRows) // { // if (_Row["RoleType_PID"].ToString() != pid) // { // continue; // } // bool _disabled = disabled; // _ListItem = new ListItemEx(); // _ListItem.Value = _Row["RoleType_ID"].ToString(); // _ListItem.Text = getlevelText(level) + _Row["RoleType_Name"].ToString(); // if (_ListItem.Value == disabledValue) // { // _disabled = false; // } // if (!_disabled) // { // _ListItem.Enabled = false; // } // items.Add(_ListItem); // BindingDropDownList(dataRows, _Row["RoleType_ID"].ToString(), items, disabledValue, level + 1, _disabled, _Transaction); // } //} //string getlevelText(int level) //{ // string _str = ""; // for (int i = 0; i < level; i++) // { // _str += "  "; // } // return System.Web.HttpContext.Current.Server.HtmlDecode(_str); //} #endregion #region RoleType.BindingTreeView /// public void BindingTreeView(string typeid, TreeNodeCollection nodes, string obscureName, bool withChildNodes, string ID_Encrypt, Transaction _Transaction) { FWB.Role _Role = new FWB.Role(_Transaction); _Role.BindingTreeView(typeid, nodes, string.IsNullOrEmpty(obscureName) ? "" : obscureName, ID_Encrypt); DataTable _DataTable = GetBindingDataSource(typeid, string.Empty, _Transaction); TreeNode _Node; DataRow _DataRow; for (int i = _DataTable.Rows.Count - 1; i >= 0; i--) { _DataRow = _DataTable.Rows[i]; _Node = new TreeNode(); _Node.Text = " " + _DataRow["RoleType_Name"].ToString(); _Node.NavigateUrl = UriHelper.AddRequestToUrl("RoleTypePage.aspx?ID=" + _DataRow["RoleType_ID"].ToEncrypt(), "Module_ID", ID_Encrypt); _Node.Value = _DataRow["RoleType_ID"].ToString(); _Node.ImageToolTip = "RoleType"; _Node.ImageUrl = TreeNodeImageUrl.RoleType; _Node.Expanded = false; nodes.AddAt(0, _Node); _Node.PopulateOnDemand = true; //_Node.ImageUrl = "~/App_Themes/RealEstate/Icons/folder.gif"; //_Node. if (!string.IsNullOrEmpty(obscureName) || withChildNodes) { BindingTreeView(_DataRow["RoleType_ID"].ToString(), _Node.ChildNodes, obscureName, withChildNodes, ID_Encrypt, _Transaction); _Node.PopulateOnDemand = false; } if (!string.IsNullOrEmpty(obscureName)) { if (_Node.ChildNodes.Count == 0) { if (_Node.Text.IndexOf(obscureName, StringComparison.CurrentCultureIgnoreCase) < 0) { nodes.Remove(_Node); } } else { _Node.Expanded = true; } } } } #endregion #region UserType.BindingDropDownList /// //public void BindingDropDownList(List items, string disabledValue, Transaction _Transaction) //{ // DataTable _DataTable = GetBindingDataSource(string.Empty, string.Empty, _Transaction); // BindingDropDownList(_DataTable.Rows, "-1", items, disabledValue, 0, true, _Transaction); //} //private void BindingDropDownList(DataRowCollection dataRows, string pid, List items, // string disabledValue, int level, bool disabled, Transaction _Transaction) //{ // ListItemEx _ListItem; // foreach (DataRow _Row in dataRows) // { // if (_Row["UserType_PID"].ToString() != pid) // { // continue; // } // bool _disabled = disabled; // _ListItem = new ListItemEx(); // _ListItem.Value = _Row["UserType_ID"].ToString(); // _ListItem.Text = getlevelText(level) + _Row["UserType_Name"].ToString(); // if (_ListItem.Value == disabledValue) // { // _disabled = false; // } // if (!_disabled) // { // _ListItem.Enabled = false; // } // items.Add(_ListItem); // BindingDropDownList(dataRows, _Row["UserType_ID"].ToString(), items, disabledValue, level + 1, _disabled); // } //} #endregion #region UserType.BindingTreeView /// public void BindingTreeView(string typeid, TreeNodeCollection nodes, string obscureName, bool withChildNodes, string ID_Encrypt, string navigatePage, Transaction _Transaction) { new FWB.User(_Transaction).BindingTreeView(typeid, nodes, string.IsNullOrEmpty(obscureName) ? "" : obscureName, ID_Encrypt); DataTable _DataTable = GetBindingDataSource(typeid, string.Empty, _Transaction); TreeNode _Node; DataRow _DataRow; for (int i = _DataTable.Rows.Count - 1; i >= 0; i--) { _DataRow = _DataTable.Rows[i]; _Node = new TreeNode(); _Node.Text = " " + _DataRow["UserType_Name"].ToString(); if (!string.IsNullOrEmpty(navigatePage)) { _Node.NavigateUrl = UriHelper.AddRequestToUrl(navigatePage + "?ID=" + _DataRow["UserType_ID"].ToEncrypt(), "Module_ID", ID_Encrypt); } else { _Node.NavigateUrl = "javascript:void(0);"; _Node.Target = ""; } _Node.Value = _DataRow["UserType_ID"].ToString(); _Node.ImageToolTip = "UserType"; _Node.ImageUrl = TreeNodeImageUrl.UserType; _Node.Expanded = false; nodes.AddAt(0, _Node); _Node.PopulateOnDemand = true; //_Node.ImageUrl = "~/App_Themes/RealEstate/Icons/folder.gif"; //_Node. if (!string.IsNullOrEmpty(obscureName) || withChildNodes) { BindingTreeView(_DataRow["UserType_ID"].ToString(), _Node.ChildNodes, obscureName, withChildNodes, ID_Encrypt, navigatePage, _Transaction); _Node.PopulateOnDemand = false; } if (!string.IsNullOrEmpty(obscureName)) { if (_Node.ChildNodes.Count == 0) { if (_Node.Text.IndexOf(obscureName, StringComparison.CurrentCultureIgnoreCase) < 0) { nodes.Remove(_Node); } } else { _Node.Expanded = true; } } } } #endregion #region 绑定已授权角色 public void BindingTreeViewRole(Transaction _Transaction, TreeNodeCollection nodes, int USER_ID, int Pid = -1, DataTable RoleTypeTable = null, DataTable RoleTable = null, bool IsShowDefault = true) { FWB.UserType _USERTYPE = new FWB.UserType(_Transaction); if (RoleTypeTable == null) { if (!IsShowDefault) { RoleTypeTable = _USERTYPE.ExecuteDataTable(@"SELECT * FROM PLATFORM_FRAMEWORK.T_ROLETYPE WHERE NVL(ROLETYPE_DESC,'1') != '内部使用' ORDER BY ROLETYPE_INDEX"); } else { RoleTypeTable = _USERTYPE.ExecuteDataTable(@"SELECT * FROM PLATFORM_FRAMEWORK.T_ROLETYPE ORDER BY ROLETYPE_INDEX"); } } if (RoleTable == null) { RoleTable = _USERTYPE.ExecuteDataTable(@" SELECT A.ROLE_ID,A.ROLE_NAME,A.ROLETYPE_ID FROM PLATFORM_FRAMEWORK.T_ROLE A, PLATFORM_FRAMEWORK.T_USERROLE B WHERE A.ROLE_ID = B.ROLE_ID AND B.USER_ID = " + USER_ID + @" ORDER BY ROLE_INDEX"); } DataRow[] _Row = RoleTypeTable.Select("ROLETYPE_PID = '" + Pid + "'"); foreach (DataRow _ModuleTypeRow in _Row) { TreeNode ModuleTypNode = new TreeNode(); ModuleTypNode.Text = _ModuleTypeRow["ROLETYPE_NAME"].ToString(); ModuleTypNode.NavigateUrl = "#"; ModuleTypNode.Value = _ModuleTypeRow["ROLETYPE_ID"].ToString(); ModuleTypNode.ImageToolTip = "RoleType"; ModuleTypNode.ImageUrl = TreeNodeImageUrl.UserType; DataRow[] listRoleRow = RoleTable.Select("ROLETYPE_ID = '" + _ModuleTypeRow["ROLETYPE_ID"] + "'"); foreach (DataRow _RoleRow in listRoleRow) { TreeNode ModuleNode = new TreeNode(); ModuleNode.Text = _RoleRow["ROLE_NAME"].ToString(); ModuleNode.NavigateUrl = "#"; ModuleNode.Value = _RoleRow["ROLE_ID"].ToString(); ModuleNode.ImageToolTip = "Role"; ModuleNode.ImageUrl = TreeNodeImageUrl.User; ModuleTypNode.ChildNodes.Add(ModuleNode); } BindingTreeViewRole(_Transaction, ModuleTypNode.ChildNodes, USER_ID, _ModuleTypeRow["ROLETYPE_ID"].TryParseToInt(), RoleTypeTable, RoleTable); if (ModuleTypNode.ChildNodes.Count > 0) { nodes.Add(ModuleTypNode); } } } #endregion #region 绑定未授权角色 public void BindingTreeViewUnRole(Transaction _Transaction, TreeNodeCollection nodes, int USER_ID, int Pid = -1, DataTable RoleTypeTable = null, DataTable RoleTable = null, bool IsShowDefault = true) { FWB.UserType _USERTYPE = new FWB.UserType(_Transaction); if (RoleTypeTable == null) { if (!IsShowDefault) { RoleTypeTable = _USERTYPE.ExecuteDataTable(@"SELECT * FROM PLATFORM_FRAMEWORK.T_ROLETYPE WHERE NVL(ROLETYPE_DESC,'1') != '内部使用' ORDER BY ROLETYPE_INDEX"); } else { RoleTypeTable = _USERTYPE.ExecuteDataTable(@"SELECT * FROM PLATFORM_FRAMEWORK.T_ROLETYPE ORDER BY ROLETYPE_INDEX"); } } if (RoleTable == null) { RoleTable = _USERTYPE.ExecuteDataTable(@" SELECT A.ROLE_ID,A.ROLE_NAME,A.ROLETYPE_ID FROM PLATFORM_FRAMEWORK.T_ROLE A WHERE NOT EXISTS(SELECT 1 FROM PLATFORM_FRAMEWORK.T_USERROLE B WHERE A.ROLE_ID = B.ROLE_ID AND B.USER_ID = " + USER_ID + @") ORDER BY ROLE_INDEX"); } DataRow[] _Row = RoleTypeTable.Select("ROLETYPE_PID = '" + Pid + "'"); foreach (DataRow _ModuleTypeRow in _Row) { TreeNode ModuleTypNode = new TreeNode(); ModuleTypNode.Text = _ModuleTypeRow["ROLETYPE_NAME"].ToString(); ModuleTypNode.NavigateUrl = "#"; ModuleTypNode.Value = _ModuleTypeRow["ROLETYPE_ID"].ToString(); ModuleTypNode.ImageToolTip = "RoleType"; ModuleTypNode.ImageUrl = TreeNodeImageUrl.UserType; DataRow[] listRoleRow = RoleTable.Select("ROLETYPE_ID = '" + _ModuleTypeRow["ROLETYPE_ID"] + "'"); foreach (DataRow _RoleRow in listRoleRow) { TreeNode ModuleNode = new TreeNode(); ModuleNode.Text = _RoleRow["ROLE_NAME"].ToString(); ModuleNode.NavigateUrl = "#"; ModuleNode.Value = _RoleRow["ROLE_ID"].ToString(); ModuleNode.ImageToolTip = "Role"; ModuleNode.ImageUrl = TreeNodeImageUrl.User; ModuleTypNode.ChildNodes.Add(ModuleNode); } BindingTreeViewUnRole(_Transaction, ModuleTypNode.ChildNodes, USER_ID, _ModuleTypeRow["ROLETYPE_ID"].TryParseToInt(), RoleTypeTable, RoleTable); if (ModuleTypNode.ChildNodes.Count > 0) { nodes.Add(ModuleTypNode); } } } #endregion } }