using System; using System.Collections.Generic; using System.Data; using System.Web; using System.Web.UI.WebControls; using SuperMap.RealEstate.Web.Utility; using SuperMap.RealEstate.CoreFrameWork; using SuperMap.RealEstate.CoreFrameWork.Dictionary.Business; using HWSB = SuperMap.RealEstate.HighWay.Storage.Business; namespace SuperMap.RealEstate.MainTenance.Storage.Modules.ServerPartMaterial { public partial class BasePage : SuperMap.RealEstate.Web.UI.PageValid { #region 方法 -> 绑定服务区树(根据服务区枚举值进行绑定) /// /// 绑定服务区树(根据服务区枚举值进行绑定) /// /// 服务区枚举类别内码 /// 父级内码 /// 树节点 /// 查询条件:服务区名称 /// 是否展示子节点 /// 是否加密显示节点值域 /// 加密内码参数 /// 服务区枚举列表 /// 服务区数据列表,用于判断对应枚举是否为服务区,跳转页面时可传递服务区参数 /// 树节点跳转地址 /// 是否显示门店节点 /// 门店节点跳转地址 /// 门店数据源 public void BindingTreeView_Enum(string Typeid, string Pid, TreeNodeCollection Nodes, string ObscureName, bool WithChildNodes, bool BindEncrypted, string ID_Encrypt, DataTable _DataAll, DataTable ServerPartTable, string _NavigateUrl, bool ShowShopTree = false, string ShopNavigateUrl = "", DataTable ShopTable = null,string _UrlParmat = null) { string _ServerpartID = ""; //服务区内码 DataRow[] _DataRowList = null; //服务区枚举集合 if (_DataAll == null) { //查询服务区枚举列表 _DataAll = GetBindingDataSource(Typeid, "", string.Empty); } _DataRowList = _DataAll.Select("FieldEnum_PID = " + Pid); foreach (DataRow _DataRow in _DataRowList) { TreeNode _Node = new TreeNode(); if (_DataRow["FieldEnum_Name"].ToString() == "贵州高投" && _DataRow["FieldEnum_Value"].ToString() == "521001") { _Node.Text = "【" + _DataRow["FieldEnum_Value"].ToString() + "】服务公司本部"; } else { _Node.Text = "【" + _DataRow["FieldEnum_Value"].ToString() + "】" + _DataRow["FieldEnum_Name"].ToString(); } #region 获取服务区内码,用于树节点传递参数 if (ServerPartTable != null && ServerPartTable.Select("FIELDENUM_ID=" + _DataRow["FieldEnum_ID"].ToString()).Length > 0) { _ServerpartID = ServerPartTable.Select("FIELDENUM_ID=" + _DataRow["FieldEnum_ID"].ToString())[0]["SERVERPART_ID"].ToString(); _Node.Value = BindEncrypted ? _ServerpartID.ToEncrypt() : _ServerpartID; _Node.ImageToolTip = "ServerPart"; _Node.ImageUrl = TreeNodeImageUrl.FieldEnum; _Node.Expanded = false; } else { _ServerpartID = "0"; _Node.Value = BindEncrypted ? _DataRow["FieldEnum_ID"].ToEncrypt() : _DataRow["FieldEnum_ID"].ToString(); _Node.ImageToolTip = "FieldEnum"; _Node.ImageUrl = TreeNodeImageUrl.ExplainType; _Node.Expanded = false; } #endregion #region 绑定树节点跳转地址 if (!string.IsNullOrEmpty(_NavigateUrl)) { if (_DataRow["FieldEnum_PID"].ToString() == "-1") { _Node.NavigateUrl = _NavigateUrl + (_NavigateUrl.Contains("?") ? "&" : "?") + "PROVINCE_CODE=" + _DataRow["FieldEnum_Value"].ToEncrypt(); } else { if (!string.IsNullOrWhiteSpace(_ServerpartID) && _ServerpartID != "0") { _Node.NavigateUrl = _NavigateUrl + (_NavigateUrl.Contains("?") ? "&" : "?") + "SERVERPART_ID=" + _ServerpartID.ToEncrypt(); #region ShowShopTree为true,则绑定门店节点 if (ShowShopTree) { foreach (DataRow ShopRow in ShopTable.Select("SERVERPART_ID = " + _ServerpartID)) { TreeNode _ChildTreeNodeShop = new TreeNode(); _ChildTreeNodeShop.NavigateUrl = UriHelper.AddRequestToUrl("MATERIALList.aspx?SERVERPART_ID=" + _ServerpartID.ToEncrypt() + "&SHOPREGION=" + ShopRow["SHOPREGION"].ToString().ToEncrypt(), null); _ChildTreeNodeShop.Text = DictionaryHelper.GetFieldEnumName( "SHOPREGION", ShopRow["SHOPREGION"].ToString(), Transaction); _ChildTreeNodeShop.Value = BindEncrypted ? ShopRow["SHOPREGION"].ToEncrypt() : ShopRow["SHOPREGION"].ToString(); _ChildTreeNodeShop.Expanded = true; _ChildTreeNodeShop.ImageToolTip = "SERVERPARTSHOP"; _Node.ChildNodes.Add(_ChildTreeNodeShop); } } #endregion } else { _Node.NavigateUrl = _NavigateUrl + (_NavigateUrl.Contains("?") ? "&" : "?") + "FIELDENUM_ID=" + _DataRow["FieldEnum_ID"].ToEncrypt(); } } } else { _Node.NavigateUrl = "javascript:void(0);"; } #endregion Nodes.Add(_Node); _Node.PopulateOnDemand = true; if (!string.IsNullOrEmpty(ObscureName) || WithChildNodes) { //循环绑定子节点 BindingTreeView_Enum(Typeid, _DataRow["FieldEnum_ID"].ToString(), _Node.ChildNodes, ObscureName, WithChildNodes, BindEncrypted, ID_Encrypt, _DataAll, ServerPartTable, _NavigateUrl, ShowShopTree, ShopNavigateUrl, ShopTable); _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; } } //若没有子节点则移除当前节点 if (_ServerpartID == "0" && _Node.ChildNodes.Count == 0) { Nodes.Remove(_Node); } } } #endregion #region GetBindingDataSource /// public DataTable GetBindingDataSource(string fieldExplain_ID, string pid, string OtherCondition) { return GetBindingDataSource(fieldExplain_ID, pid, string.Empty, OtherCondition); } /// public DataTable GetBindingDataSource(string fieldExplain_ID, string pid, string obscureName, string OtherCondition, string orderindex = " ASC") { FieldEnum _FieldEnum = new FieldEnum(this.Transaction); string _SQLStr1 = "SELECT FIELDENUM_ID,FIELDENUM_VALUE,FIELDENUM_NAME,FIELDENUM_STATUS,FIELDENUM_PID" + " FROM T_FIELDENUM A WHERE FIELDEXPLAIN_ID = {0} {1} {2} {3} ORDER BY FIELDENUM_PID,FIELDENUM_INDEX" + orderindex; string _SQLStr2 = string.IsNullOrEmpty(pid) ? "" : "AND FIELDENUM_PID = " + pid; string _SQLStr3 = string.IsNullOrEmpty(obscureName) ? "" : "AND FIELDENUM_NAME LIKE '%" + obscureName + "%'"; string _SQLStr4 = string.IsNullOrEmpty(OtherCondition) ? "" : "AND " + OtherCondition; string _SQLStr = string.Format(_SQLStr1, fieldExplain_ID, _SQLStr2, _SQLStr3, _SQLStr4); return _FieldEnum.ExecuteDataTable(_SQLStr); } #endregion } }