我的树控件是绑定Xml文件的,不是动态的查询绑定。
不想显示根节点 ,要怎么实现呀?各位大侠
(其他节点都是同级的  不能作为根节点)

解决方案 »

  1.   

    private void BindTreeView()    ...{        SqlConnection con = new SqlConnection("data source=.;uid=sa;pwd=;database=Exsamples;");        con.Open();        string sqlstr = "select * from Tree_School where ID>0 order by parent_id";        SqlCommand cmd = new SqlCommand(sqlstr,con);        SqlDataReader sdr = cmd.ExecuteReader();        InitTreeXMl(Server.MapPath("TreeSource.xml"), sdr);    }    private void InitTreeXMl(string XmlFileName, SqlDataReader dr)    ...{        XmlDocument xmlDoc = new XmlDocument();        xmlDoc.Load(XmlFileName);        XmlNode root = xmlDoc.SelectSingleNode("rootTreenode"); //查找<rootTreenode>        //删除初根节点外的所有节点。        root.RemoveAll();        XmlElement treenode1 = (XmlElement)root;        treenode1.SetAttribute("Node_ID", "0");        treenode1.SetAttribute("Father_ID", "-1");        treenode1.SetAttribute("NodeName", "后台管理");        //循环dr中的数据,将数据逐条写入Xml文件。        while (dr.Read())        ...{            //添加第一级结点            if (treenode1.GetAttribute("Node_ID").ToString() == dr["parent_id"].ToString())            ...{                XmlElement xe = xmlDoc.CreateElement("treenode"); //创建一个<treenode>节点                xe.SetAttribute("Node_ID", dr["ID"].ToString());                xe.SetAttribute("Father_ID", dr["parent_id"].ToString());                xe.SetAttribute("NodeName", dr["content"].ToString());                treenode1.AppendChild(xe);            }            else            ...{                InnerXmlNode(root, dr, xmlDoc);            }        }        xmlDoc.Save(XmlFileName);    }    //递归往xml文件中写数据    private void InnerXmlNode(XmlNode treenode, SqlDataReader dr, XmlDocument xmlDoc)    ...{        XmlNodeList nodeList = treenode.ChildNodes;//获取treenode节点的所有子节点        foreach (XmlNode xn in nodeList)        ...{            XmlElement treenode2 = (XmlElement)xn;            if (treenode2.GetAttribute("Node_ID").ToString() == dr["parent_id"].ToString())            ...{                XmlElement xe = xmlDoc.CreateElement("treenode"); //创建一个<treenode>节点                xe.SetAttribute("Node_ID", dr["ID"].ToString());                xe.SetAttribute("Father_ID", dr["parent_id"].ToString());                xe.SetAttribute("NodeName", dr["content"].ToString());                treenode2.AppendChild(xe);                break;            }            else if (treenode2.ChildNodes.Count > 0)            ...{                                InnerXmlNode(xn, dr, xmlDoc);             }        }    }别忘了还要在Page_Load事件里加入下面的语句:if (!IsPostBack)        ...{            BindTreeView();        }别以为到这里就完了,还有最后的关键步骤,下面继续。第五步:将Default.aspx页切换到源视图,在TreeView1的html标签内加入以下代码:<DataBindings>             <asp:TreeNodeBinding DataMember="treenode" TextField="NodeName"/>             <asp:TreeNodeBinding DataMember="rootTreenode" TextField="NodeName" /></DataBindings>