2025-03-27 15:05:14 +08:00

179 lines
9.1 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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 ->
/// <summary>
/// 绑定服务区树(根据服务区枚举值进行绑定)
/// </summary>
/// <param name="Typeid">服务区枚举类别内码</param>
/// <param name="Pid">父级内码</param>
/// <param name="Nodes">树节点</param>
/// <param name="ObscureName">查询条件:服务区名称</param>
/// <param name="WithChildNodes">是否展示子节点</param>
/// <param name="BindEncrypted">是否加密显示节点值域</param>
/// <param name="ID_Encrypt">加密内码参数</param>
/// <param name="_DataAll">服务区枚举列表</param>
/// <param name="ServerPartTable">服务区数据列表,用于判断对应枚举是否为服务区,跳转页面时可传递服务区参数</param>
/// <param name="_NavigateUrl">树节点跳转地址</param>
/// <param name="ShowShopTree">是否显示门店节点</param>
/// <param name="ShopNavigateUrl">门店节点跳转地址</param>
/// <param name="ShopTable">门店数据源</param>
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
/// <summary />
public DataTable GetBindingDataSource(string fieldExplain_ID, string pid, string OtherCondition)
{
return GetBindingDataSource(fieldExplain_ID, pid, string.Empty, OtherCondition);
}
/// <summary />
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
}
}