OperNode 是个代理: public delegate void OperNode(TreeNode node);
http://www.gotdotnet.com/team/webcontrols/treeview/tree2.aspxhttp://www.gotdotnet.com/team/webcontrols/treeview/tree.aspx 还有这个 http://www.freevbcode.com/ShowCode.asp?ID=652HOWTO: Populate a Treeview Control with an XML Filehttp://support.microsoft.com/default.aspx?scid=kb;EN-US;q244954 http://msdn.microsoft.com/workshop/webcontrols/behaviors/library/treeview/treeview.asphttp://dev.csdn.net/article/28/28499.shtm http://dev.csdn.net/article/28/28502.shtmhttp://aspnet.4guysfromrolla.com/articles/051403-1.aspx
/// <summary>
/// 构造树
/// </summary>
/// <param name="tableName">数据表名</param>
/// <param name="keyField">主键字段名</param>
/// <param name="parentField">父编号字段名</param>
/// <param name="showField">显示字段名</param>
/// <param name="rootName">根节点名</param>
/// <param name="tv">待构造的树</param>
protected void BindTree(string tableName,string keyField,string parentField,string showField,string rootName,ref TreeView tv)
{
tv.Nodes.Clear();
DataTable dt = new DataTable();
string mySql = "select "+keyField+","+parentField+","+showField+" from "+tableName;
using (KY_BASE.DataAccess myDA = new KY_BASE.DataAccess())
{
dt = myDA.ExeTable(mySql);
}
TreeNode root = new TreeNode();
root.ID = "0";//
root.Text = rootName;
tv.Nodes.Add(root);
DataRow[] rows = dt.Select(parentField+" = '0'");
for(int i=0;i<rows.Length;i++)
{
BindLowerTree(dt,keyField,rows[i][keyField].ToString(),parentField,showField,rows[i][showField].ToString(),root,ref tv);
}
} protected void BindLowerTree(DataTable dt,string keyField,string keyValue,string parentField,string showField,string showValue,TreeNode myNode,ref TreeView tv)
{
TreeNode node = new TreeNode();
node.ID = keyValue;
node.Text = showValue;
myNode.Nodes.Add(node);
DataRow[] rows = dt.Select(parentField+"='"+keyValue+"'");
for (int i=0;i<rows.Length;i++)
{
BindLowerTree(dt,keyField,rows[i][keyField].ToString(),parentField,showField,rows[i][showField].ToString(),node,ref tv);
}
} /// <summary>
/// 遍历节点
/// </summary>
/// <param name="nodeID"></param>
/// <param name="tnc"></param>
/// <param name="tv"></param>
protected void OperNodeByID(string nodeID,OperNode oper,TreeNodeCollection tnc,ref TreeView tv)
{
foreach(TreeNode node in tnc)
{
if (node.ID ==nodeID)
{
oper(node);
break;
}
if(node.Nodes.Count!=0)
OperNodeByID(nodeID,oper,node.Nodes,ref tv);
}
} #endregion
public delegate void OperNode(TreeNode node);
还有这个
http://www.freevbcode.com/ShowCode.asp?ID=652HOWTO: Populate a Treeview Control with an XML Filehttp://support.microsoft.com/default.aspx?scid=kb;EN-US;q244954
http://msdn.microsoft.com/workshop/webcontrols/behaviors/library/treeview/treeview.asphttp://dev.csdn.net/article/28/28499.shtm
http://dev.csdn.net/article/28/28502.shtmhttp://aspnet.4guysfromrolla.com/articles/051403-1.aspx