<!--#include file='conn.asp'--><?xml version="1.0" encoding="GB2312"?><%
'无限级目录树xml文件
'http://www.51windows.net
dim TreeID,PageUrl
PageUrl = Request.ServerVariables("SCRIPT_NAME")
TreeID = Request.QueryString("FolderID")
if len(TreeID) = 0 or Isnumeric(TreeID) = False then
TreeID = 0
end if'文件夹开始
dim FolderSql
FolderSql = "Select FolderID,FolderParentID,FolderName from [Folder] where FolderParentID = " & TreeID
Set RsFolder = conn.execute(FolderSql)
%>
<Tree TreeId="Folder<% = TreeID %>" NodeXmlSrc="<% = PageUrl %>?FolderID=<% = TreeID %>"><%
While RsFolder.eof = False
%>
<TreeNode NodeId="Folder<% = RsFolder("FolderID") %>" Href="Folder.asp?FolderID=<% = RsFolder("FolderID") %>" Title="<% = Server.HTMLEncode(RsFolder("FolderName")) %>" NodeXmlSrc="<% = PageUrl %>?FolderID=<% = RsFolder("FolderID") %>"></TreeNode><%
RsFolder.MoveNext
Wend
Set RsFolder = nothing
'文件夹结束'文件开始
dim FileSql
FileSql = "Select FileID,FileFolderID,FileName from [File] where FileFolderID = " & TreeID & " order by FileID Desc"
Set RsFile = conn.execute(FileSql)
While RsFile.eof = False
%>
<TreeNode NodeId="File<% = RsFile("FileID") %>" Title="<% = Server.HTMLEncode(RsFile("FileName")) %>" Href="File.asp?FileID=<% = RsFile("FileID") %>"></TreeNode><%
RsFile.MoveNext
Wend
Set RsFile = nothing
'文件结束
%>
</Tree>
<%
conn.close
set conn = nothing
%>这是一个直接读取数据库并生成XML格式的代码

解决方案 »

  1.   

    这是上面的代码运行后的结果
    <?xml version="1.0" encoding="GB2312" ?> 
    - <Tree TreeId="Folder0" NodeXmlSrc="/tree/txt/tree.asp?FolderID=0">
      <TreeNode NodeId="Folder1" Href="Folder.asp?FolderID=1" Title="aa" NodeXmlSrc="/tree/txt/tree.asp?FolderID=1" /> 
      <TreeNode NodeId="File3" Title="bb" Href="File.asp?FileID=3" /> 
      <TreeNode NodeId="File2" Title="cc" Href="File.asp?FileID=2" /> 
      <TreeNode NodeId="File1" Title="dd" Href="File.asp?FileID=1" /> 
      </Tree>
      

  2.   

    http://samples.gotdotnet.com/quickstart/howto/doc/Xml/SaveDataSetXML.aspx
      

  3.   

    终于见到传说中的jiangsheng(蒋晟.Net[MVP])了
    去看看先..........
      

  4.   

    asp和asp.net没可比性,不过就你的功能蒋晟大大的是正解
      

  5.   

    先谢谢大家
        不过大家没明白我的意思,我的需求是这样的:
        我把MSDN左边的树型下到了我的机器里面,经研究发现他是通过
    绑定XML文件来实现树的,而我是想动态的生成树,也就是要动态生成
    XML以供树型来绑定。
      

  6.   

    先谢谢大家
        不过大家没明白我的意思,我的需求是这样的:
        我把MSDN左边的树型下到了我的机器里面,经研究发现他是通过
    绑定XML文件来实现树的,而我是想动态的生成树,也就是要动态生成
    XML以供树型来绑定。
      

  7.   

    静态的好处是可以直接让客户端加载XML,但实际上现在很多TreeView还不至于这样做,因为要兼容不同的浏览器实现客户端分析XML和动态加载XML挺麻烦,所以还是用服务器端加载XML然后输出客户端可直接接受的HTML和Script比较方便。既然是服务器端加载XML,那么静态的XML是要加载到内存的,那就和动态在内存中生成的XML没什么差别。例如你可以看看ASP.NET 2.0的SiteMap加上TreeView是如何实现的,SiteMap既可以是静态的(读取web.sitemap文件),也可以是动态的(由你自己编写的SiteMapProvider实现),然后对于TreeView来说它需要的仅是一个DataSource。
      

  8.   

    我blog可以有楼主想要的树。不过存放源代码的服务器已经早不能用了。<?IMPORT NAMESPACE=TVNS IMPLEMENTATION="/webctrl_client/1_0/treeview.htc" />
    <TVNS:TREEVIEW id="tvCategories" systemimagespath="/webctrl_client/1_0/treeimages/" ></TVNS:TREEVIEW><SCRIPT language="jscript">
    <!--
    var xmlDoc = new ActiveXObject("Msxml2.DOMDocument");
    var xslDoc = new ActiveXObject("Msxml2.DOMDocument");
    xmlDoc.async = false;
    xslDoc.async = false;
    xmlDoc.load("BookCategories.xml");
    xslDoc.load("CategoryTree.xsl");
    var xhtmlDoc = xmlDoc.transformNode(xslDoc);
    document.all("tvCategories").treeNodeSrc = xhtmlDoc;
    document.all("tvCategories").databind();
    -->
    </SCRIPT>调用方法如上,是利用了MS IE CONTROLS的TREEVIEW脚本生成的,我只需要创建XML和XSL就行了
    代码我家里可能还有,楼主需要的话留下邮箱.找到了就给你发