give you a example ,if you have a dataset contains columns id , name , parent_id,you can do like this :
#region CreateTree
/// <summary>
/// Create a tree by given root node from a dataset , if the dataset doesn't contains the id , it will throw a ISDException
/// </summary>
/// <param name="oDsNodes">Source DataSet contains columns id , name , parent_id</param>
/// <param name="nID">The root of the tree</param>
/// <returns></returns>
public string  CreateTree(DataSet oDsNodes , int nID)
{
string sReturn = "<Node ID='" + nID.ToString();
string sTemp = "";
bool bExsit = false;
for(int i = 0 ; i < oDsNodes.Tables[0].Rows.Count ; i++)
{
int nParentID = int.Parse(oDsNodes.Tables[0].Rows[i]["PARENT_ID"].ToString());
int nTempID = int.Parse(oDsNodes.Tables[0].Rows[i]["ID"].ToString());
if(nID == nParentID)
{
sTemp+= CreateTree(oDsNodes , nTempID);
}
if(nID == nTempID)
{
string sTempName = oDsNodes.Tables[0].Rows[i]["NAME"].ToString().Trim();
sReturn += "' Name='" + sTempName + "'>";
bExsit = true;
}
}
if(!bExsit)
{
throw new ISDException("Can not found this node");
}
sReturn += sTemp + "</Node>";
return sReturn;
}
#endregion

解决方案 »

  1.   

    直接使用 TreeView 不行吗?
    也可以从 TreeView inherit, 不用自己去写一个 TreeView吧
      

  2.   

    用TreeView就行了
    添加第一层节点
    node=new TreeNode();
    node.ID="";
    node.Text="";
    node.NodeData="0";
    node.ImageUrl="";
    node.NavigateUrl="";
    TreeView1.Nodes.Add(node);
    添加子节点
    Node1=new TreeNode();
    Node1.ID="";
    Node1.Text="";
    Node1.NodeData="0";
    Node1.ImageUrl="";
    Node1.NavigateUrl="";
        node.Nodes.Add(Node1);
      

  3.   

    我做的是web页面,请再详细说明我在
    private void Page_Load(object sender, System.EventArgs e)
    {}
    过程中怎样实现上面的代码?