首页 ┆ 网站地图 ┆ 在线留言 ┆ 游戏资讯 ┆ 资源下载 ┆ 端午节祝福 ┆ 迅雷在线影视 ┆淘宝手机在线充值 ┆淘宝游戏点卡充值 
设为首页
加入收藏
联系我们
高级搜索
您当前的位置: 主页>NET专区>.NET2.0>ASP.NET 2.0中层次数据的处理及其TreeView和Menu控件的应用
ASP.NET 2.0中层次数据的处理及其TreeView和Menu控件的应用
来源: 发布时间:2008-02-23 发布人: 浏览: 人次   字体: [ ]  

绑定到站点导航数据(Site Navigation)

  站点导航数据是ASP.NET中的另外一种层次数据。ASP.NET 2.0不仅支持使用ASP.NET中的站点导航API编程访问站点地图数据,还支持使用SiteMapDataSource控件进行宣告式的数据绑定。当你把TreeView(或Menu)控件绑定到SiteMapDataSource的时候,站点地图的Text和Url属性可以绑定到TreeNode(或MenuItem)。尽管你可以用一个数据绑定集合来建立这种绑定,但是这样的操作不是必要的。TreeView和 Menu控件自动地把TreeNode或 MenuItem的Text和NavigateUrl属性绑定到相关的站点地图属性(这是使用SiteMapNode的INavigateUIData接口实现的)。当TreeView和Menu绑定到SiteMapDataSource的时候,它们还有一个特性,会自动地把SelectedNode或SelectedItem属性设置为站点地图中的当前节点。

  下面的例子演示了一个绑定到SiteMapDataSource控件的TreeView。尽管这个例子使用的是数据绑定集合,但是如果你只需要绑定到节点的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>

  绑定到关系数据库

  当关系数据库中的多个表通过外部键相关联的时候,也可以用层次结构来表现。例如,在产品数据库中,产品与产品类别关联,它们就可以用类别和产品之间的层次(1对多)关系来表现。尽管当前的ASP.NET版本没有包含一个用于把关系数据显示为层次结构的控件,你仍然可以通过编程填充层次的数据绑定控件(例如TreeView或Menu)的节点/数据项来实现这种目的。下面的例子显示了一个用关系数据库填充的TreeView控件。这个例子利用TreeView的PopulateOnDemand特性,按需求(客户端上扩展某个TreeNode的时候)来填充子节点。

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>

共2页: 上一页 [1] 2 下一页
相 关 文 章   发布商链接
·实现gridview内容打印功能的二法
·gridview表头固定并实现打印到excel...
·重写GridView实现单击行变色的效果代...
·图解ASP.NET下AJAX安装(VS2005下安...
·Gridview控件字段内容过长的解决方法...
·实例解决GridView中弹出对话框并改变...
·Net2.0中使用母版页及其母版页的控件
·为GridView控件添加分页导航条形式代...
·GridView中固定列的两种方法
·DataView对象获取数据行相应列值的两...
 §最新评论:(评论内容只代表网友观点,与本站立场无关!)
网名: 验证码:  【所有评论】【↑返回顶部
评 分: 12 345
评论内容:(不能超过500字,请自觉遵守互联网相关政策法规。[按 Ctrl+Enter 可直接提交]
注意:请勿在本站发布政治话题、色情及违反法律的内容。
IT知道网 声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。
推 荐 文 章
·实例讲解在.net2.0中对config
·包含32种常见的用户输入验证...
·asp.net不使用服务器控件的情
·如何更改单个aspx页面的编码...
·实例讲解如何设置gridview的...
·asp.NET 2.0中引发CSS失效问...
·GridView通过模板列实现第一...
·VS2005利用TreeView控件和递...
·DataView对象获取数据行相应...
·GridView中固定列的两种方法
·为GridView控件添加分页导航...
·Net2.0中使用母版页及其母版...
·实例解决GridView中弹出对话...
·Gridview控件字段内容过长的...
·图解ASP.NET下AJAX安装(VS20...
热 门 文 章
·asp.net(C#)弹出窗口返回值并...
·VS2005利用Excel组件操作Exce...
·AJAX实现无刷新适时显示gridV...
·gridview表头固定并实现打印...
·Js获取radiobuttonlist选中值...
·gridview绑定数据显示的各种...
·ASP.NET中“无法加载 DLL 找...
·asp.net文件下载防止乱码出现...
·asp.net2.0回发或回调参数无...
·实现gridview内容打印功能的...
·ASP.NET多个用户控件回车提交...
·Asp.net页面传递参数的几种方...
·图解ASP.NET下AJAX安装(VS20...
·实例解决GridView中弹出对话...
·如何在asp.net中获取GridView...
网站首页 - 关于本站 - 加入收藏 - 网站地图 - 友情连接 - 在线留言 - 联系我们 - 返回顶部
Copyright © 2007 IT知道网.[冀ICP备07026896号]. All Rights Reserved .