using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using Microsoft.Web.UI.WebControls;
using NewCap.DataModel;namespace yikatong.zxt.cy
{
/// <summary>
/// tree 的摘要说明。
/// </summary>
public class tree : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Label Label34;
protected System.Web.UI.WebControls.HyperLink HyperLink1;
protected System.Web.UI.WebControls.Label Label2;
protected System.Web.UI.HtmlControls.HtmlForm Form1;
protected Microsoft.Web.UI.WebControls.TreeView TreeView1;

private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
/*
if(Session["UserName"].ToString()=="")
{
Response.Redirect("../Admin_Login.aspx",true);
}
*/ if(Page.IsPostBack == false)
{
FillCustDeptTree();
//SetStatus(0);
}
} #region 填充树
//获取系统参数表中的客户单位名称
private string GetDpNameInSysPara()
{
try
{
BASE_SYSPARA syspara = new BASE_SYSPARA();
DataSet ds = syspara.GetAllDS();
return ds.Tables[0].Rows[0][1].ToString();
}
catch(Exception ex)
{
throw ex;
}
}
//获取客户单位信息
private DataTable Load1DeptTable()//获取一级部门
{
try
{
BASE_CUSTDEPT custdept= new BASE_CUSTDEPT();
DataSet ds = custdept.Get1DS();
return ds.Tables[0];
}
catch(Exception ex)
{
throw ex;
}
}
private DataTable Load2DeptTable(string p1id)//获取二级部门
{
try
{
BASE_CUSTDEPT custdept= new BASE_CUSTDEPT();
DataSet ds = custdept.Get2DS(p1id);
return ds.Tables[0];
}
catch(Exception ex)
{
throw ex;
}
}
private DataTable Load3DeptTable(string p1id,string p2id)//获取三级部门
{
try
{
BASE_CUSTDEPT custdept= new BASE_CUSTDEPT();
DataSet ds = custdept.Get3DS(p1id,p2id);
return ds.Tables[0];
}
catch(Exception ex)
{
throw ex;
}
}
private DataTable Load4DeptTable(string p1id,string p2id,string p3id)//获取四级部门
{
try
{
BASE_CUSTDEPT custdept= new BASE_CUSTDEPT();
DataSet ds = custdept.Get4DS(p1id,p2id,p3id);
return ds.Tables[0];
}
catch(Exception ex)
{
throw ex;
}
}
//填充树
private void FillCustDeptTree()
{
try
{
TreeNode RootNode = new TreeNode();//根节点
RootNode.Text = GetDpNameInSysPara();
RootNode.ID = "customerdepartmentmanager";
TreeView1.Nodes.Add(RootNode);
//添加一级单位节点
DataTable p1Table = Load1DeptTable();
foreach(DataRow dr1 in p1Table.Rows)
{
TreeNode p1Node = new TreeNode();
p1Node.Text = dr1["DPNAME1"].ToString();
p1Node.ID = dr1["DPCODE1"].ToString().Trim()+"00000000";
//添加二级单位节点
DataTable p2Table = Load2DeptTable(dr1["DPCODE1"].ToString());
foreach(DataRow dr2 in p2Table.Rows)
{
TreeNode p2Node = new TreeNode();
p2Node.Text = dr2["DPNAME2"].ToString();
p2Node.ID = dr2["DPCODE1"].ToString().Trim()+dr2["DPCODE2"].ToString().Trim()+"000000";

//添加三级单位节点
DataTable p3Table = Load3DeptTable(dr2["DPCODE1"].ToString(),dr2["DPCODE2"].ToString());
foreach(DataRow dr3 in p3Table.Rows)
{
TreeNode p3Node = new TreeNode();
p3Node.Text = dr3["DPNAME3"].ToString();
p3Node.ID = dr3["DPCODE1"].ToString().Trim()+dr3["DPCODE2"].ToString().Trim()+dr3["DPCODE3"].ToString().Trim()+"000"; p3Node.Expanded=true; // 默认根结点为展开
// p3Node.Target ="mainFrame";
// p3Node.NavigateUrl ="tree_Operate.aspx?";
//添加四级单位节点
DataTable p4Table = Load4DeptTable(dr3["DPCODE1"].ToString(),dr3["DPCODE2"].ToString(),dr3["DPCODE3"].ToString());
foreach(DataRow dr4 in p4Table.Rows)
{
TreeNode p4Node = new TreeNode();
p4Node.Text = dr4["DPNAME4"].ToString();
p4Node.ID = dr4["DPCODE1"].ToString().Trim()+dr4["DPCODE2"].ToString().Trim()+dr4["DPCODE3"].ToString().Trim()+dr4["DPCODE4"].ToString().Trim(); p4Node.Expanded=true; // 默认根结点为展开
p4Node.Target ="mainFrame";
p4Node.NavigateUrl ="viewcust.aspx?location="+p4Node.ID;
//p4Node.NavigateUrl ="tree.aspx";
p3Node.Nodes.Add(p4Node);
}
p2Node.Nodes.Add(p3Node);
}
p1Node.Nodes.Add(p2Node);
}
RootNode.Nodes.Add(p1Node);
}
}
catch(Exception ex)
{
throw ex;
}
}

//从一个子树subTree中找出其ID为id的节点
private TreeNode FindInSubTree(string id,TreeNode subTree)
{
if(subTree.ID ==id)
{
return subTree;

}
else
{
foreach(TreeNode tn in subTree.Nodes)
{
TreeNode value = FindInSubTree(id,tn);
if(value !=null)
{
return value;
}

}
return null;
}
} //从一个树Tree中找出其ID为id的节点
private TreeNode FindInTreeView(string id,TreeView Tree)
{
foreach(TreeNode tn in Tree.Nodes)
{
TreeNode value = FindInSubTree(id,tn);
if(value !=null)
{
return value;
}

}
return null;
} //找到树中选中的节点
private TreeNode FindSelectedNode(TreeView tree)
{
if(tree.Nodes.Count ==0)
{
return null;
}
else
{
string SelectedIndex = tree.SelectedNodeIndex;
string separatorstr = ".,;";
char[] separatorchars = separatorstr.ToCharArray();
string[] indexs = SelectedIndex.Split(separatorchars,5);
int level = indexs.Length; int index = Int32.Parse(indexs[0]);
TreeNode tn = TreeView1.Nodes[index];
for(int i = 1;i<level;i++)
{
index = Int32.Parse(indexs[i]);
tn = tn.Nodes[index];
}
return tn;
}
}

#endregion #region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{    
this.Load += new System.EventHandler(this.Page_Load); }
#endregion
}
}