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
}
}