ASPNET提供了一系列拥有页面导航功能的控件这些控件包括在页面显示菜单的Menu控件提供站点导航的Site MapPath控件和显示层次结构的树形(TreeView)控件本章的示例将介绍这些控件在创建Web应用程序中的应用 实现静态的TreeView控件导航TreeView控件是一个树形结构的控件该控件用于显示分层数据如文件目录TreeView控件的每个节点是一个TreeNode对象具有Text属性和Value属性Text属性指定在节点显示的文字Value属性是获取节点的值每个节点有选定和导航这两种状态NavigateUrl属性决定节点的状态当该属性不为空字符串()值时为导航状态否则为选择状态默认情况下会有一个节点处于选择状态 TreeView控件的Nodes包含所有节点的集合可以用设计器为TreeView控件添加节点也可以使用编程的方式动态添加节点如果当TreeView控件需要显示的节点非常多一次性加载可能会影响效率在这种情况下可以设置TreeView控件的PopulateOnDemand属性为true那么展开节点时引发TreeNodePopulate事件在这个事件中使用编程的方式加载子节点本示例将演示如何使用TreeView控件的静态节点实现页面导航 技术要点 实现静态的TreeView控件导航的技术要点如下 ? TreeView控件的Nodes属性包含所有节点通过编程向该属性增加节点 ? TreeNode对象作为TreeView控件的一个节点通过该对象设置导航信息 实现步骤 ()在VS中创建一个ASPNET网站命名为TreeViewSample ()添加一个页面命名为TreeViewControlaspx并把这个页设置为起始页 ()从工具箱选择TreeView控件设计页面 ()在首次加载页面时首先创建一个根节点不带任何导航信息然后将该节点添加子节点信息代码如下所示 <%@ Page Language=C# AutoEventWireup=true %> <script runat=server> protected void Page_Load(object sender EventArgs e) { if (!IsPostBack) { thisTreeViewShowLines = true;//在控件中显示网格线 TreeNode rootNode = new TreeNode();//定义根节点 rootNodeText = 分类产品; TreeNode tr = new TreeNode();//定义子节点 trText = 电器类; trNavigateUrl = ~/electricaspx; rootNodeChildNodesAdd(tr);//把子节点添加到根节点 TreeNode tr = new TreeNode(); trText = 食品类; trNavigateUrl = ~/foodaspx; TreeNode tr = new TreeNode(); trText = 苹果; trNavigateUrl = ~/appleaspx; trChildNodesAdd(tr);//添加二级子节点 rootNodeChildNodesAdd(tr); TreeNode tr = new TreeNode(); trText = 日用品类; trNavigateUrl = ~/commodityaspx; rootNodeChildNodesAdd(tr); thisTreeViewNodesAdd(rootNode);//把根节点添加到TreeView控件中 } } </script> <html xmlns= > <head runat=server> <title>TreeView使用示例</title> </head> <body> <form id=form runat=server> <div> <asp:TreeView ID=TreeView runat=server> </asp:TreeView> </div> </form> </body> </html> ()按Ctrl+F组合键运行程序 运行结果如图所示 )thisstylewidth=; border= twffan=done>图 运行结果 源程序解读 ()TreeView控件的属性比较丰富ShowLines属性确定各节点之间是否显示连线 ()TreeNode对象代表TreeView控件的一个节点该对象的ChildNodes属性包含节点的子节点 |