ASP.NET 2.0中層次數(shù)據(jù)的處理(3)_.Net教程
推薦:用ASP.NET/C#連接Access和SQL Server數(shù)據(jù)庫連接Access 首先看一個例子代碼片斷: 程序代碼: -------------------------------------------------------------------------------- using System.Data; using System.Data.Ole
下面的例子演示了一個綁定到SiteMapDataSource控件的TreeView。盡管這個例子使用的是數(shù)據(jù)綁定集合,但是如果你只需要綁定到節(jié)點的Text和Url屬性,這樣的操作就是沒必要的。
<asp:SiteMapDataSource ID="SiteMapSource" runat="server"/>
<asp:TreeView ID="MyTreeView" SkinId="BulletedList3"
DataSourceId="SiteMapSource" runat="server">
<Databindings>
<asp:TreeNodeBinding TextField="Title" NavigateUrlField="Url" />
</Databindings>
</asp:TreeView>
綁定到關(guān)系數(shù)據(jù)庫
當關(guān)系數(shù)據(jù)庫中的多個表通過外部鍵相關(guān)聯(lián)的時候,也可以用層次結(jié)構(gòu)來表現(xiàn)。例如,在產(chǎn)品數(shù)據(jù)庫中,產(chǎn)品與產(chǎn)品類別關(guān)聯(lián),它們就可以用類別和產(chǎn)品之間的層次(1對多)關(guān)系來表現(xiàn)。盡管當前的ASP.NET版本沒有包含一個用于把關(guān)系數(shù)據(jù)顯示為層次結(jié)構(gòu)的控件,你仍然可以通過編程填充層次的數(shù)據(jù)綁定控件(例如TreeView或Menu)的節(jié)點/數(shù)據(jù)項來實現(xiàn)這種目的。下面的例子顯示了一個用關(guān)系數(shù)據(jù)庫填充的TreeView控件。這個例子利用TreeView的PopulateOnDemand特性,按需求(客戶端上擴展某個TreeNode的時候)來填充子節(jié)點。
Sub GetProductCategories(ByVal node As TreeNode)
Dim categories As CategoryList = WarehouseDB.GetProductCategories()
Dim c As Category
For Each c In categories
Dim newNode As TreeNode = New TreeNode(c.Name, c.Id)
newNode.SelectAction = TreeNodeSelectAction.Expand
newNode.PopulateOnDemand = True
node.ChildNodes.Add(newNode)
Next
End Sub
Sub GetProductsForCategory(ByVal node As TreeNode)
Dim categoryId As String = node.Value
Dim products As ProductList = WarehouseDB.GetProductsForCategory(categoryId)
Dim p As Product
For Each p In products
Dim newNode As TreeNode = New TreeNode(p.Name, p.Id)
node.ChildNodes.Add(newNode)
Next
End Sub
Sub PopulateNode(ByVal source As Object, ByVal e As TreeNodeEventArgs)
Select Case e.Node.Depth
Case 0
GetProductCategories(e.Node)
Case 1
GetProductsForCategory(e.Node)
End Select
End Sub
<asp:TreeView ID="TreeView1" OnTreeNodePopulate="PopulateNode" SkinId="Simple" Width="250" ExpandDepth="0" runat="server">
<Nodes>
<asp:TreeNode Text="Inventory" SelectAction="Expand" PopulateOnDemand="true"/>
</Nodes>
</asp:TreeView>
分享:ASP.NET、JSP及PHP之間的抉擇由于我常接是ASP、JSP及PHP的項目,所以正開始寫一系列的文章來比較它們之間的差別,當我寫到一半時,ASP 被宣布了,所以我不得不重新開始審視這個問題。我正在同時做一個JSP項目和一個ASP項目
- asp.net如何得到GRIDVIEW中某行某列值的方法
- .net SMTP發(fā)送Email實例(可帶附件)
- js實現(xiàn)廣告漂浮效果的小例子
- asp.net Repeater 數(shù)據(jù)綁定的具體實現(xiàn)
- Asp.Net 無刷新文件上傳并顯示進度條的實現(xiàn)方法及思路
- Asp.net獲取客戶端IP常見代碼存在的偽造IP問題探討
- VS2010 水晶報表的使用方法
- ASP.NET中操作SQL數(shù)據(jù)庫(連接字符串的配置及獲取)
- asp.net頁面?zhèn)髦禍y試實例代碼
- DataGridView - DataGridViewCheckBoxCell的使用介紹
- asp.net中javascript的引用(直接引入和間接引入)
- 三層+存儲過程實現(xiàn)分頁示例代碼
- 相關(guān)鏈接:
- 教程說明:
.Net教程-ASP.NET 2.0中層次數(shù)據(jù)的處理(3)
。