对树的动态加载是因为树的内容是不固定的,允许用户可以对树进行增删改。这样就直接涉及到了数据库。对数据库的设计有的就放一张表里,有的有几个LEVEL就放几张表里面,这就随便你了,怎么把数据从数据库中提出来,我也不介绍了。现在是数据已经提出。我是将数据从库中提出放到DataRead中的。
private
void
initNeTree()
{
// 将主节点添加到树中
Infragistics.Win.UltraWinTree.UltraTreeNode groupNode;
while (myReader.Read())
{
groupNode = nodeHeFei.Nodes.Add(Convert.ToInt32(myReader[ " group_id " ]).ToString(), myReader[ " group_name " ].ToString());
groupNode.Override.NodeStyle = Infragistics.Win.UltraWinTree.NodeStyle.OptionButton;
}
myReader.Close();
// 从数据库中调出子节点并将起加到树中相应的主节点下
Infragistics.Win.UltraWinTree.UltraTreeNode neNode;
myReader = SqlHelper.ExecuteReader(Utilities.m_connStr, CommandType.Text, " select distinct ne_id , group_id, ne_name from Ne " );
while (myReader.Read())
{
groupNode = null ;
if ( ! Convert.IsDBNull(myReader[ " group_id " ]))
groupNode = neTree.GetNodeByKey(Convert.ToInt32(myReader[ " group_id " ]).ToString());
neNode = groupNode.Nodes.Add(Convert.ToInt32(myReader[ " ne_id " ]).ToString(), myReader[ " ne_name " ].ToString());
}
myReader.Close();
}
{
// 将主节点添加到树中
Infragistics.Win.UltraWinTree.UltraTreeNode groupNode;
while (myReader.Read())
{
groupNode = nodeHeFei.Nodes.Add(Convert.ToInt32(myReader[ " group_id " ]).ToString(), myReader[ " group_name " ].ToString());
groupNode.Override.NodeStyle = Infragistics.Win.UltraWinTree.NodeStyle.OptionButton;
}
myReader.Close();
// 从数据库中调出子节点并将起加到树中相应的主节点下
Infragistics.Win.UltraWinTree.UltraTreeNode neNode;
myReader = SqlHelper.ExecuteReader(Utilities.m_connStr, CommandType.Text, " select distinct ne_id , group_id, ne_name from Ne " );
while (myReader.Read())
{
groupNode = null ;
if ( ! Convert.IsDBNull(myReader[ " group_id " ]))
groupNode = neTree.GetNodeByKey(Convert.ToInt32(myReader[ " group_id " ]).ToString());
neNode = groupNode.Nodes.Add(Convert.ToInt32(myReader[ " ne_id " ]).ToString(), myReader[ " ne_name " ].ToString());
}
myReader.Close();
}