树型的数据库填充
/// <summary>
/// 用数据库中的服务表来填充树
/// </summary>
/// <param name="ParentID">父结点ID</param>
/// <param name="pNode">父结点</param>
/// <param name="dvTree">DataView自定义视图</param>
public void AddTree(int ParentID, TreeNode pNode, DataView dvTree)
{
dvTree.RowFilter = "[ParentID]=" + ParentID;
dvTree.Sort = "OrderNum asc"; //排列
foreach (DataRowView drv in dvTree)
{
TreeNode Node = new TreeNode();
Node.Text = drv["Name"].ToString();
Node.Name = drv["ID"].ToString();
Node.ToolTipText = drv["SimpleDesc"].ToString();
Node.Tag = drv["BSAddress"].ToString();
if (pNode == null)
{
//添加根节点
trvTypeTree.Nodes.Add(Node);
AddTree(Int32.Parse(drv["ID"].ToString()), Node, dvTree); //再次递归
}
else
{
//̀添加当前节点的子节点
pNode.Nodes.Add(Node);
AddTree(Int32.Parse(drv["ID"].ToString()), Node, dvTree); //再次递归
}
}
}
/// <summary>
/// 初始化子项目类型树,从库中动态加载
/// </summary>
public void InitTypeTree()
{
Service clientService = new Service();
DataSet ds = clientService.QueryServiceInfo(SQL_SELECT_SERVICES_INFO_ALL);
DataTable dt = ds.Tables[0];
DataView dvTree = new DataView(dt);
trvTypeTree.Nodes.Clear();
AddTree(0, (TreeNode)null, dvTree);
trvTypeTree.ExpandAll();
}