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

222 lines
12 KiB
C#

using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.UI.WebControls;
using SuperMap.RealEstate.CoreFrameWork;
using SuperMap.RealEstate.CoreFrameWork.Dictionary.Business;
using SuperMap.RealEstate.ServiceModel;
using SuperMap.RealEstate.Web.Utility;
using SuperMap.RealEstate.Web.UI.WebControls;
using Business = SuperMap.RealEstate.HighWay.Storage.Business;
using HZQR.Common;
namespace SuperMap.RealEstate.HighWay.Modules.ProinstCompact
{
public partial class BasePage : SuperMap.RealEstate.Web.UI.PageValid
{
#region BindingTreeView
/// <summary>
/// 绑定商户自定义类别
/// </summary>
/// <param name="nodes">树节点</param>
/// <param name="AutoType_TypeID">自定义类型</param>
/// <param name="DataSource_Type">数据类型</param>
/// <param name="pid">父级内码</param>
/// <param name="obscureName">查询内容</param>
/// <param name="withChildNodes">是否包含子节点</param>
/// <param name="CanUrl">跳转路由</param>
/// <param name="IsValid">是否仅显示有效数据</param>
/// <param name="_DataAll">数据源列表</param>
/// <param name="Serverpart_ID">服务区集合</param>
/// <param name="IsIndent"></param>
/// <param name="ShowServerpart">是否显示服务区树</param>
/// <param name="displayAll">是否显示空白节点</param>
public void BindingTreeView(TreeNodeCollection nodes, int AutoType_TypeID, string DataSource_Type = "", string pid = "-1",
string obscureName = "", bool withChildNodes = true, string CanUrl = "", bool IsValid = false, DataTable _DataAll = null,
string Serverpart_ID = "", bool IsIndent = false, bool ShowServerpart = false, bool displayAll = false)
{
string _AutoType_Level = "";
DataRow[] _DataRowList = null;
if (_DataAll == null)
{
_DataAll = GetBindingDataSource(AutoType_TypeID, DataSource_Type, "", IsValid, " DESC", Serverpart_ID);
}
if (ShowServerpart)
{
foreach (Business.SERVERPART _SERVERPART in new Business.SERVERPART(Transaction).FillCollection(
"WHERE SERVERPART_ID IN (" + (string.IsNullOrWhiteSpace(Serverpart_ID) ? "0" : Serverpart_ID) +
") ORDER BY SERVERPART_INDEX,SERVERPART_CODE"))
{
TreeNode ServerpartNode = new TreeNode();
ServerpartNode.Text = _SERVERPART.SERVERPART_NAME;
ServerpartNode.Value = _SERVERPART.SERVERPART_ID.ToString();
if (CanUrl == "")
{
ServerpartNode.NavigateUrl = UriHelper.AddRequestToUrl("AUTOTYPEPage.aspx",
"SERVERPART_ID", _SERVERPART.SERVERPART_ID_Encrypt);
}
else
{
ServerpartNode.NavigateUrl = UriHelper.AddRequestToUrl(CanUrl, new Dictionary<string, string>
{
{ "DEFINETYPE", AutoType_TypeID .ToString()},
{ "SERVERPART_ID", _SERVERPART.SERVERPART_ID_Encrypt }
});
}
ServerpartNode.ImageToolTip = "Serverpart";
ServerpartNode.ImageUrl = "";
ServerpartNode.Expanded = false;
#region
foreach (DataRow dataRow in _DataAll.Select("SERVERPART_ID = " + ServerpartNode.Value +
(pid == "" ? "" : " AND AUTOTYPE_PID = " + pid)))
{
_AutoType_Level = _AutoType_Level == "" ? dataRow["AUTOTYPE_LEVEL"].ToString() : _AutoType_Level;
if (_AutoType_Level != dataRow["AUTOTYPE_LEVEL"].ToString())
{
continue;
}
TreeNode treeNode = new TreeNode();
treeNode.Text = (string.IsNullOrEmpty(dataRow["AUTOTYPE_CODE"].ToString()) ? "" :
"【" + dataRow["AUTOTYPE_CODE"].ToString() + "】") + dataRow["AUTOTYPE_NAME"].ToString();
if (IsIndent && treeNode.Text.Length > 18)
{
treeNode.ToolTip = treeNode.Text;
treeNode.Text = treeNode.Text.Substring(0, 18) + "...";
}
treeNode.Value = dataRow["AUTOTYPE_ID"].ToString();
if (CanUrl == "")
{
treeNode.NavigateUrl = UriHelper.AddRequestToUrl("AUTOTYPEPage.aspx?ID=" +
treeNode.Value.ToEncrypt() + "&SERVERPART_ID=" + _SERVERPART.SERVERPART_ID_Encrypt, "", "");
}
else
{
treeNode.NavigateUrl = UriHelper.AddRequestToUrl(CanUrl + (CanUrl.Contains("?") ? "" : "?") + "&DEFINETYPE=" + AutoType_TypeID + "&ID=" +
treeNode.Value.ToEncrypt() + "&SERVERPART_ID=" + _SERVERPART.SERVERPART_ID_Encrypt, "", "");
}
treeNode.ImageToolTip = "AUTOTYPE";
treeNode.ImageUrl = "";
treeNode.Expanded = new bool?(false);
ServerpartNode.ChildNodes.AddAt(0, treeNode);
treeNode.PopulateOnDemand = true;
if (!string.IsNullOrEmpty(obscureName) || withChildNodes)
{
this.BindingTreeView(treeNode.ChildNodes, AutoType_TypeID, DataSource_Type, dataRow["AUTOTYPE_ID"].ToString(),
obscureName, withChildNodes, CanUrl, IsValid, _DataAll, _SERVERPART.SERVERPART_ID.ToString());
treeNode.PopulateOnDemand = false;
}
if (!string.IsNullOrEmpty(obscureName))
{
if (treeNode.ChildNodes.Count == 0)
{
if (treeNode.Text.IndexOf(obscureName, StringComparison.CurrentCultureIgnoreCase) < 0)
{
ServerpartNode.ChildNodes.Remove(treeNode);
}
}
else
{
treeNode.Expanded = new bool?(true);
}
}
}
#endregion
//添加服务区节点
if (ServerpartNode.ChildNodes.Count > 0 || displayAll)
{
nodes.Add(ServerpartNode);
}
}
}
else
{
#region
_DataRowList = _DataAll.Select(pid == "" ? "1 = 1" : "AUTOTYPE_PID = " + pid);
foreach (DataRow dataRow in _DataRowList)
{
_AutoType_Level = _AutoType_Level == "" ? dataRow["AUTOTYPE_LEVEL"].ToString() : _AutoType_Level;
if (_AutoType_Level != dataRow["AUTOTYPE_LEVEL"].ToString())
continue;
TreeNode treeNode = new TreeNode();
treeNode.Text = (string.IsNullOrEmpty(dataRow["AUTOTYPE_CODE"].ToString()) ? "" :
"【" + dataRow["AUTOTYPE_CODE"].ToString() + "】") + dataRow["AUTOTYPE_NAME"].ToString();
if (IsIndent && treeNode.Text.Length > 18)
{
treeNode.ToolTip = treeNode.Text;
treeNode.Text = treeNode.Text.Substring(0, 18) + "...";
}
treeNode.Value = dataRow["AUTOTYPE_ID"].ToString();
if (CanUrl == "")
{
treeNode.NavigateUrl = UriHelper.AddRequestToUrl("AUTOTYPEPage.aspx?ID=" +
treeNode.Value.ToEncrypt() + "&SERVERPART_ID=" + Serverpart_ID.ToEncrypt(), "", "");
}
else
{
treeNode.NavigateUrl = UriHelper.AddRequestToUrl(CanUrl + (CanUrl.Contains("?") ? "" : "?") + "&ID=" +
treeNode.Value.ToEncrypt() + "&SERVERPART_ID=" + Serverpart_ID.ToEncrypt(), "", "");
}
treeNode.ImageToolTip = "AUTOTYPE";
treeNode.ImageUrl = "";
treeNode.Expanded = new bool?(false);
nodes.AddAt(0, treeNode);
treeNode.PopulateOnDemand = true;
if (!string.IsNullOrEmpty(obscureName) || withChildNodes)
{
this.BindingTreeView(treeNode.ChildNodes, AutoType_TypeID, DataSource_Type, dataRow["AUTOTYPE_ID"].ToString(),
obscureName, withChildNodes, CanUrl, IsValid, _DataAll, Serverpart_ID, IsIndent);
treeNode.PopulateOnDemand = false;
}
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);
}
}
}
#endregion
}
}
#endregion
#region GetBindingDataSource
public DataTable GetBindingDataSource(int AutoType_TypeID, string DataSource_Type,
string orderbysql = " ASC", string Serverpart_ID = "")
{
return this.GetBindingDataSource(AutoType_TypeID, DataSource_Type, "", false, orderbysql, Serverpart_ID);
}
public DataTable GetBindingDataSource(int AutoType_TypeID, string DataSource_Type, string obscureName = "",
bool JudgeValid = false, string orderbysql = " ASC", string Serverpart_ID = "")
{
string format = "SELECT * FROM HIGHWAY_STORAGE.T_AUTOTYPE WHERE {0} {1} {2} ORDER BY AUTOTYPE_LEVEL,AUTOTYPE_INDEX" +
orderbysql + ",AUTOTYPE_CODE" + orderbysql + ",AUTOTYPE_NAME" + orderbysql;
string arg = "AutoType_TypeID = " + AutoType_TypeID;
string arg2 = string.IsNullOrEmpty(obscureName) ? "" : " AND (AUTOTYPE_NAME LIKE '%" + obscureName +
"%' OR AUTOTYPE_CODE LIKE '%" + obscureName + "%')";
string arg3 = (string.IsNullOrEmpty(DataSource_Type) ? "" : " AND DATASOURCE_TYPE IN (" + DataSource_Type + ")") +
(string.IsNullOrEmpty(Serverpart_ID) ? "" : " AND SERVERPART_ID IN (" + Serverpart_ID + ")");
if (JudgeValid == true)
{
arg3 += " and AUTOTYPE_VALID = 1";
}
string fullSQLString = string.Format(format, arg, arg2, arg3);
return new Business.AUTOTYPE(Transaction).ExecuteDataTable(fullSQLString);
}
#endregion
}
}