protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
BindTreeView();
treeStaff.ExpandAll();
}
}
protected override void OnLoadComplete(EventArgs e)
{
base.OnLoadComplete(e);
//DataTable dt = (grdList.DataSource as DataSet).Tables[0];
string corpCode = Globals.GetCurrentUserCorpCode();
for (int i = 0; i < grdList.Items.Count; i++)
{
DataSet ds = new IDE_DepartmentController().GetIDE_DepartmentByCorpCode(corpCode);
TreeViewNode treeNode = GetNodeByName(treeStaff.Nodes[0], ds.Tables[0].Rows[0].ItemArray[5].ToString());
TreeViewNode treeUser = new TreeViewNode();
treeUser.Text = grdList.Items[i].Cells[1].Text;
treeUser.Value = ds.Tables[0].Rows[0].ItemArray[5].ToString();
treeUser.ImageUrl = "user8.gif";
treeNode.Nodes.Add(treeUser);
}
}
private void BindTreeView()
{
DataSet dsSource = new IDE_DepartmentController().GetIDE_DepartmentByCorpCode(Globals.GetCurrentUserCorpCode());
DataRelation relation = new DataRelation("ParentCode", dsSource.Tables[0].Columns["DepartmentCode"], dsSource.Tables[0].Columns["ParentCode"], false);
dsSource.Relations.Add(relation);
DataRow[] drsRoot = dsSource.Tables[0].Select("ParentCode=''");
IDE_CorpInfoInfo corpInfo = new IDE_CorpInfoController().GetIDE_CorpInfoByCorpCode(Globals.GetCurrentUserCorpCode());
if (corpInfo == null)
return;
TreeViewNode rootNode = new TreeViewNode();
rootNode.Text = corpInfo.CorpName;
rootNode.Value = "";
rootNode.Expanded = true;
foreach (DataRow dr in drsRoot)
{
TreeViewNode node = new TreeViewNode();
node.Text = dr["DepartmentName"].ToString();
node.Value = dr["DepartmentCode"].ToString();
BuildChildNode(dr, node);// lh 2007-5-24子节点下面的根节点无法显示 注释该句就ok了
rootNode.Nodes.Add(node);
}
this.treeStaff.Nodes.Add(rootNode);
//TreeView2.DataSource = dsSource; TreeView2.DataBind();
}
private void BuildChildNode(DataRow parentRow, ComponentArt.Web.UI.TreeViewNode parentNode)
{
DataRow[] drSub = parentRow.GetChildRows("ParentCode");
foreach (DataRow drChild in drSub)
{
TreeViewNode node = new TreeViewNode();
node.Text = drChild["DepartmentName"].ToString();
node.Value = drChild["DepartmentCode"].ToString();
//
parentNode.Nodes.Add(node);
BuildChildNode(drChild, node);
}
}
/// <summary>
/// 查询父节点下匹配部门名称的子节点
/// </summary>
/// <param name="tvNode">父节点</param>
/// <param name="DepartmentCode">要查找的部门code</param>
/// <returns></returns>
protected TreeViewNode GetNodeByName(TreeViewNode tvNode, string DepartmentCode)
{
if (tvNode == null)
{
return null;
}
if (tvNode.Value == DepartmentCode)
{
return tvNode;
}
if (tvNode.Nodes.Count == 0)
{
return null;
}
for (int i = 0; i < tvNode.Nodes.Count; i++)
{
TreeViewNode tvN = tvNode.Nodes[i];
if (tvN.Value == DepartmentCode)
{
return tvN;
}
if (tvN.Nodes.Count == 0)
{
continue;
}
TreeViewNode tvChild = GetNodeByName(tvN, DepartmentCode);
if (tvChild != null)
{
return tvChild;
}
}
return null;
}

浙公网安备 33010602011771号