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

141 lines
5.4 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using SuperMap.RealEstate.CoreFrameWork.Dictionary;
using System.Data;
namespace SuperMap.RealEstate.CoreFrameWork.Dictionary
{
public partial class FieldEnumTree : SuperMap.RealEstate.HighWay.Modules.ServerPart.BasePage
{
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
_FieldEnum = new Business.FieldEnum(Transaction);
}
Business.FieldEnum _FieldEnum = null;
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack) return;
TreeViewBinding(false);
//处理定位
if (!String.IsNullOrEmpty(Request["ID"]))
{
_FieldEnum.FieldEnum_ID_Encrypt = Request["ID"];
if (_FieldEnum.Select())
FindTypeNode(_FieldEnum, MyTreeView.Nodes);
}
_FieldEnum.Close();
SetControlClientAction(ButtonSearch);
SetControlClientAction(ButtonIndex, false, true, true);
SetControlClientAction(ButtonAddFieldEnum, "parent.FieldEnumDefaultObjectDetail", "FieldEnumPage.aspx?TypeID=" + Request["TypeID"]);
FixTreeViewDoubleClick(MyTreeView,true);
}
string _FieldExplain_ID=string.Empty;
string FieldExplain_ID
{
get
{
if (string.IsNullOrEmpty(_FieldExplain_ID))
{
_FieldEnum.FieldEnum_ID_Encrypt = Request["TypeID"];
_FieldExplain_ID = _FieldEnum.FieldEnum_ID.ToString();
}
return _FieldExplain_ID;
}
}
#region FindSelectedNode
private bool FindTypeNode(Business.FieldEnum ParentFieldEnum, TreeNodeCollection Nodes)
{
Business.FieldEnum _FieldEnumParent = ParentFieldEnum;
while (_FieldEnumParent != null)
{
foreach (TreeNode _Node in Nodes)
{
if (_Node.Value != _FieldEnumParent.FieldEnum_ID.ToString())
{
continue;
}
if (_FieldEnumParent.KeyID == ParentFieldEnum.KeyID)
{
_Node.Text = _Node.Text + "<a name=\"selectNode\"></a>";
_Node.Selected = true;
if (_Node.PopulateOnDemand)
{
_Node.PopulateOnDemand = false;
_FieldEnum.BindingTreeView(FieldExplain_ID, _Node.Value, _Node.ChildNodes, string.Empty, false,ModuleInfo.ID_Encrypt);
}
_Node.Expanded = _Node.ChildNodes.Count > 0;
return true;
}
else
{
if (_Node.PopulateOnDemand)
{
_Node.PopulateOnDemand = false;
_FieldEnum.BindingTreeView(FieldExplain_ID, _Node.Value, _Node.ChildNodes, string.Empty, false, ModuleInfo.ID_Encrypt);
}
_Node.Expanded = _Node.ChildNodes.Count > 0;
return FindTypeNode(ParentFieldEnum, _Node.ChildNodes);
}
}
_FieldEnumParent = _FieldEnumParent.GetParentFieldEnum();
}
return false;
}
#endregion
//绑定数据源
private void TreeViewBinding(bool withChildNodes)
{
MyTreeView.Nodes.Clear();
_FieldEnum.BindingTreeView(FieldExplain_ID, "-1", MyTreeView.Nodes,
TextBoxSearch.Text, withChildNodes, ModuleInfo.ID_Encrypt);
}
protected void MyTreeView_TreeNodePopulate(object sender, TreeNodeEventArgs e)
{
_FieldEnum.BindingTreeView(FieldExplain_ID, e.Node.Value,
e.Node.ChildNodes, TextBoxSearch.Text, false, ModuleInfo.ID_Encrypt);
}
protected void ButtonSearch_Click(object sender, EventArgs e)
{
TreeViewBinding(false);
}
protected void ButtonIndex_Click(object sender, EventArgs e)
{
//重载数据
ResetTreeViewIndex(MyTreeView.Nodes);
if (MyTreeView.SelectedNode != null)
{
Redirect("parent.FieldEnumDefaultObjectDetail",
MyTreeView.SelectedNode.NavigateUrl);
}
Alert("排序成功!", 3);
}
private void ResetTreeViewIndex(TreeNodeCollection nodes)
{
TreeNode _Node;
for (int i = 0; i < nodes.Count; i++)
{
_Node = nodes[i];
_FieldEnum.ResetProperty();
_FieldEnum.FieldEnum_ID = int.Parse(_Node.Value);
_FieldEnum.FieldEnum_Index = (i + 1) * 10;
_FieldEnum.Update();
if (_Node.PopulateOnDemand)
{
_Node.PopulateOnDemand = false;
_FieldEnum.BindingTreeView(FieldExplain_ID, _Node.Value,
_Node.ChildNodes, string.Empty, false, ModuleInfo.ID_Encrypt);
}
ResetTreeViewIndex(_Node.ChildNodes);
}
}
}
}