treeview显示树形表时,所有节点重复出现两次
下面是程序:
if (!this.IsPostBack)
        {
            db dbase = new db();
            conn = dbase.getConn();
            try
            {
                conn.Open();
                ds = CreateDataSet();
                DataTable dt = new DataTable();
                dt = ds.Tables[0];
                InitTree(dt, null, "0");
                
                this.TreeView1.DataBind();
            }
            finally
            {
                conn.Close();
                conn.Dispose();
            }
         }private void InitTree(DataTable dt, TreeNode node, string id)
    {
        DataRow[] rows = dt.Select("ParentId='" + id + "'");//筛选出属于父节点“node”的子节点集合        foreach (DataRow drv in rows)   //循环子节点集合
        {
            TreeNode tn = new TreeNode();
            tn.Value = drv["NodeId"].ToString();    //存放节点ID
            tn.Text = drv["NodeName"].ToString();   //设置节点名称         
            //theNode.text="<span   title="   &   txt   &   ">"   &   txt   &   "</span>"
            tn.ImageUrl = "image/folderopen.gif";
            if (node == null | id == "0")
            {
                this.TreeView1.Nodes.Add(tn); //添加至根节点
            }
            else
            {              
                node.ChildNodes.Add(tn);//添加子节点
            }
            this.InitTree(dt, tn, tn.Value);//递归,添加该节点的子节点
        }    }表中字段类型都为nvarchar