数据库取值形成xml实现tree

本文介绍了一个使用 ASP.NET 的 TreeView 控件进行数据绑定的实例。该实例通过三层页面实现:TreeViewDataSet.aspx 用于展示树形结构,Categories.aspx 负责从数据库获取类别信息并返回 XML 结构,Products.aspx 则根据选中的类别加载具体产品。这些页面展示了如何利用 SQL 查询结合 XML 技术来构建动态树形菜单。

Create three .aspx files

TreeViewDataSet.aspx

<%@ import Namespace="Microsoft.Web.UI.WebControls" %>
<%@ Register TagPrefix="IE" Namespace="Microsoft.Web.UI.WebControls" Assembly="Microsoft.Web.UI.WebControls" %>
<html>
<head>
<title>
TreeViewDataSet.aspx
</title>
</head>
<body>
<form runat="Server">
<IE:TreeView
 AutoPostBack="True"
 TreeNodeSrc="Categories.aspx"
 Runat="Server"/>
</form>
</body>
</html>

Categories.aspx

<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<Script runat="Server">
sub page_load
 Dim mycon as SqlConnection
 Dim cmdCategories As SqlCommand
 Dim dsCategories As DataSet
 Dim strQuery As String
 mycon=New Sqlconnection("Server=localhost;UID=sa;PWD=secret;Database=Northwind")
 strQuery="select categoryname as Text,'products.aspx?catid='
 +LTRIM(STR(CategoryID))" & _
 "As TreeNodeSrc from Categories As TreeNode for xml auto, XMLDATA"
 cmdCategories=new SqlCommand(strQuery,mycon)
 dsCategories=New DataSet
 dsCategories.ReadXML(cmdCategories.ExecuteXmlReader(),XmlReadMode.Fragment)
 dsCategories.DataSetName="TREENODES"
 dsCategories.WriteXml(Response.OutputStream)
end sub
</script>

Products.aspx

<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<Script runat="Server">
sub page_load
 Dim mycon as SqlConnection
 Dim cmdProducts As SqlCommand
 Dim dsProducts As DataSet
 Dim strQuery As String
 mycon=New Sqlconnection("Server=localhost;UID=sa;PWD=secret;Database=Northwind")
 strQuery="select Productname as Text from products As TreeNode" & _
 " where CategoryID=@categoryID for xml auto, XMLDATA "
 cmdproducts=new SqlCommand(strQuery,mycon)
 cmdproducts.Parameters.Add(New SqlParameter("@categoryID",Request.QueryString("catID")))
 mycon.open()
 dsproducts=New DataSet
 dsproducts.ReadXML(cmdproducts.ExecuteXmlReader(),XmlReadMode.Fragment)
 dsproducts.DataSetName="TREENODES"
 dsproducts.WriteXml(Response.OutputStream)
 mycon.close()
end sub
</script>


转载于:https://my.oschina.net/iwenr/blog/222986

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值