利用TreeView控件动态生成无限级树(续:通过绑定动态xml文件)(转)

时间:2022-05-30 11:55:26
在上一篇
利用TreeView控件动态生成无限级树
中提到的那个动态生成XML文件进行绑定的办法
今天也被我实现了

把生成XML文件的代码单独放到一个页面中,比如说叫GetXml.aspx页中去
然后指定
利用TreeView控件动态生成无限级树(续:通过绑定动态xml文件)(转)TreeView2.TreeNodeSrc  =   " GetXml.aspx " ;

而这个GetXml.aspx.cs中的代码如下
利用TreeView控件动态生成无限级树(续:通过绑定动态xml文件)(转)private   void  SendXml()
利用TreeView控件动态生成无限级树(续:通过绑定动态xml文件)(转)利用TreeView控件动态生成无限级树(续:通过绑定动态xml文件)(转)        
{
利用TreeView控件动态生成无限级树(续:通过绑定动态xml文件)(转)            
//Create Xml File
利用TreeView控件动态生成无限级树(续:通过绑定动态xml文件)(转)
            XmlDocument objXmlDoc = new XmlDocument();
利用TreeView控件动态生成无限级树(续:通过绑定动态xml文件)(转)
利用TreeView控件动态生成无限级树(续:通过绑定动态xml文件)(转)            
//Insert Xml Declaration
利用TreeView控件动态生成无限级树(续:通过绑定动态xml文件)(转)
            XmlDeclaration objXmlDeclare = objXmlDoc.CreateXmlDeclaration("1.0""UTF-8""yes");
利用TreeView控件动态生成无限级树(续:通过绑定动态xml文件)(转)            objXmlDoc.InsertBefore(objXmlDeclare, objXmlDoc.DocumentElement);
利用TreeView控件动态生成无限级树(续:通过绑定动态xml文件)(转)
利用TreeView控件动态生成无限级树(续:通过绑定动态xml文件)(转)            XmlElement objRootElem 
= objXmlDoc.CreateElement("TREENODES");
利用TreeView控件动态生成无限级树(续:通过绑定动态xml文件)(转)            objXmlDoc.AppendChild(objRootElem);
利用TreeView控件动态生成无限级树(续:通过绑定动态xml文件)(转)
利用TreeView控件动态生成无限级树(续:通过绑定动态xml文件)(转)            CreateXml(objXmlDoc, objRootElem, 
0);
利用TreeView控件动态生成无限级树(续:通过绑定动态xml文件)(转)
利用TreeView控件动态生成无限级树(续:通过绑定动态xml文件)(转)            System.Xml.XmlTextWriter xmlwriter 
= new System.Xml.XmlTextWriter(Response.OutputStream,Response.ContentEncoding);
利用TreeView控件动态生成无限级树(续:通过绑定动态xml文件)(转)            xmlwriter.Formatting 
= Formatting.Indented;
利用TreeView控件动态生成无限级树(续:通过绑定动态xml文件)(转)            xmlwriter.Indentation 
= 4;
利用TreeView控件动态生成无限级树(续:通过绑定动态xml文件)(转)            xmlwriter.IndentChar 
= ' ';
利用TreeView控件动态生成无限级树(续:通过绑定动态xml文件)(转)            objXmlDoc.WriteTo(xmlwriter);
利用TreeView控件动态生成无限级树(续:通过绑定动态xml文件)(转)            xmlwriter.Flush();
利用TreeView控件动态生成无限级树(续:通过绑定动态xml文件)(转)            Response.End();
利用TreeView控件动态生成无限级树(续:通过绑定动态xml文件)(转)            xmlwriter.Close();
利用TreeView控件动态生成无限级树(续:通过绑定动态xml文件)(转)        }

利用TreeView控件动态生成无限级树(续:通过绑定动态xml文件)(转)
利用TreeView控件动态生成无限级树(续:通过绑定动态xml文件)(转)        
private   void  CreateXml(XmlDocument objXMLDoc, XmlElement objRootElem,  int  belong)
利用TreeView控件动态生成无限级树(续:通过绑定动态xml文件)(转)利用TreeView控件动态生成无限级树(续:通过绑定动态xml文件)(转)        
{
利用TreeView控件动态生成无限级树(续:通过绑定动态xml文件)(转)            
//Get DataSet
利用TreeView控件动态生成无限级树(续:通过绑定动态xml文件)(转)
            DataSet ds = new DataSet();
利用TreeView控件动态生成无限级树(续:通过绑定动态xml文件)(转)            
foreach(DataRow dr in ds.Tables[0].Rows)
利用TreeView控件动态生成无限级树(续:通过绑定动态xml文件)(转)利用TreeView控件动态生成无限级树(续:通过绑定动态xml文件)(转)            
{
利用TreeView控件动态生成无限级树(续:通过绑定动态xml文件)(转)                
//Create ChildNode TreeNode
利用TreeView控件动态生成无限级树(续:通过绑定动态xml文件)(转)
                XmlElement objXmlElem = objXMLDoc.CreateElement("TREENODE");
利用TreeView控件动态生成无限级树(续:通过绑定动态xml文件)(转)                objRootElem.AppendChild(objXmlElem);
利用TreeView控件动态生成无限级树(续:通过绑定动态xml文件)(转)
利用TreeView控件动态生成无限级树(续:通过绑定动态xml文件)(转)                
//Create Attributes Text
利用TreeView控件动态生成无限级树(续:通过绑定动态xml文件)(转)
                XmlAttribute objXmlAttText = objXMLDoc.CreateAttribute("Text");
利用TreeView控件动态生成无限级树(续:通过绑定动态xml文件)(转)                objXmlAttText.Value 
= dr["text"].ToString().Trim();
利用TreeView控件动态生成无限级树(续:通过绑定动态xml文件)(转)                objXmlElem.SetAttributeNode(objXmlAttText);
利用TreeView控件动态生成无限级树(续:通过绑定动态xml文件)(转)
利用TreeView控件动态生成无限级树(续:通过绑定动态xml文件)(转)                
//Create Attributes CheckBox
利用TreeView控件动态生成无限级树(续:通过绑定动态xml文件)(转)
                XmlAttribute objXmlAttCB = objXMLDoc.CreateAttribute("CheckBox");
利用TreeView控件动态生成无限级树(续:通过绑定动态xml文件)(转)                objXmlAttCB.Value 
= "True";
利用TreeView控件动态生成无限级树(续:通过绑定动态xml文件)(转)                objXmlElem.SetAttributeNode(objXmlAttCB);
利用TreeView控件动态生成无限级树(续:通过绑定动态xml文件)(转)
利用TreeView控件动态生成无限级树(续:通过绑定动态xml文件)(转)                
//Create Attributes Expanded
利用TreeView控件动态生成无限级树(续:通过绑定动态xml文件)(转)
                XmlAttribute objXmlAttExp = objXMLDoc.CreateAttribute("Expanded");
利用TreeView控件动态生成无限级树(续:通过绑定动态xml文件)(转)                objXmlAttExp.Value 
= "True";
利用TreeView控件动态生成无限级树(续:通过绑定动态xml文件)(转)                objXmlElem.SetAttributeNode(objXmlAttExp);
利用TreeView控件动态生成无限级树(续:通过绑定动态xml文件)(转)
利用TreeView控件动态生成无限级树(续:通过绑定动态xml文件)(转)                
int id = int.Parse(dr["id"].ToString().Trim());
利用TreeView控件动态生成无限级树(续:通过绑定动态xml文件)(转)                CreateXml(objXMLDoc, objXmlElem, id);
利用TreeView控件动态生成无限级树(续:通过绑定动态xml文件)(转)            }

利用TreeView控件动态生成无限级树(续:通过绑定动态xml文件)(转)        }

函数的递归思想用的仍然是上一篇中的同样的思想
这里把生成的objXMLdoc文件用XmlTextWriter写入到一个Xml流中
然后利用xmlwriter.Flush()的方式进行输出
这样就可以得到这个Xml文件了
在PageLoad函数里调用这个SendXml()方法即可
利用TreeView控件动态生成无限级树(续:通过绑定动态xml文件)(转)private   void  Page_Load( object  sender, System.EventArgs e)
利用TreeView控件动态生成无限级树(续:通过绑定动态xml文件)(转)利用TreeView控件动态生成无限级树(续:通过绑定动态xml文件)(转)        
{
利用TreeView控件动态生成无限级树(续:通过绑定动态xml文件)(转)            BindXmlTree();
利用TreeView控件动态生成无限级树(续:通过绑定动态xml文件)(转)        }