您的位置:首页 > 移动开发 > Objective-C

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

2006-08-09 11:49 609 查看

 

在上一篇
利用TreeView控件动态生成无限级树
中提到的那个动态生成XML文件进行绑定的办法
今天也被我实现了

把生成XML文件的代码单独放到一个页面中,比如说叫GetXml.aspx页中去
然后指定


TreeView2.TreeNodeSrc = "GetXml.aspx";

而这个GetXml.aspx.cs中的代码如下


private void SendXml()




        

{


            //Create Xml File


            XmlDocument objXmlDoc = new XmlDocument();




            //Insert Xml Declaration


            XmlDeclaration objXmlDeclare = objXmlDoc.CreateXmlDeclaration("1.0", "UTF-8", "yes");


            objXmlDoc.InsertBefore(objXmlDeclare, objXmlDoc.DocumentElement);




            XmlElement objRootElem = objXmlDoc.CreateElement("TREENODES");


            objXmlDoc.AppendChild(objRootElem);




            CreateXml(objXmlDoc, objRootElem, 0);




            System.Xml.XmlTextWriter xmlwriter = new System.Xml.XmlTextWriter(Response.OutputStream,Response.ContentEncoding);


            xmlwriter.Formatting = Formatting.Indented;


            xmlwriter.Indentation = 4;


            xmlwriter.IndentChar = ' ';


            objXmlDoc.WriteTo(xmlwriter);


            xmlwriter.Flush();


            Response.End();


            xmlwriter.Close();


        }




        private void CreateXml(XmlDocument objXMLDoc, XmlElement objRootElem, int belong)




        

{


            //Get DataSet


            DataSet ds = new DataSet();


            foreach(DataRow dr in ds.Tables[0].Rows)




   
be73
         

{


                //Create ChildNode TreeNode


                XmlElement objXmlElem = objXMLDoc.CreateElement("TREENODE");


                objRootElem.AppendChild(objXmlElem);




                //Create Attributes Text


                XmlAttribute objXmlAttText = objXMLDoc.CreateAttribute("Text");


                objXmlAttText.Value = dr["text"].ToString().Trim();


                objXmlElem.SetAttributeNode(objXmlAttText);




                //Create Attributes CheckBox


                XmlAttribute objXmlAttCB = objXMLDoc.CreateAttribute("CheckBox");


                objXmlAttCB.Value = "True";


                objXmlElem.SetAttributeNode(objXmlAttCB);




                //Create Attributes Expanded


                XmlAttribute objXmlAttExp = objXMLDoc.CreateAttribute("Expanded");


                objXmlAttExp.Value = "True";


                objXmlElem.SetAttributeNode(objXmlAttExp);




                int id = int.Parse(dr["id"].ToString().Trim());


                CreateXml(objXMLDoc, objXmlElem, id);


            }


        }

函数的递归思想用的仍然是上一篇中的同样的思想
这里把生成的objXMLdoc文件用XmlTextWriter写入到一个Xml流中
然后利用xmlwriter.Flush()的方式进行输出
这样就可以得到这个Xml文件了
在PageLoad函数里调用这个SendXml()方法即可


private void Page_Load(object sender, System.EventArgs e)




        

{


            BindXmlTree();


        }

posted on 2004-10-29 19:04 流浪的狗 阅读(2746) 评论(5)  编辑 收藏 引用 收藏至365Key 所属分类: Dotnet C#  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  xml dataset object c#