ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 【圣炎¢天乐】asp.net 2.0中的站点导航

【圣炎¢天乐】asp.net 2.0中的站点导航

原创 Linux操作系统 作者:iDotNetSpace 时间:2008-06-03 10:24:32 0 删除 编辑

在asp.net 2.0中提供了两种导航控件

  •    TreeView控件
    • 可扩展和折叠的分支
    • 节点是可导航, 可选择的,也可添加选择框
    • TreeNode对象定义的内容
    • TreeNodes可以通过声明方式,写代码方式或通过数据邦定方式添加
    • TreeNodes可以按需装载
  •     Menu控件
    • 在Web页面中提供下拉或弹出式的菜单
    • Items 是导航的或可选择的
    • Menu 控件显示可以是竖直方向也可以是水平方向
    • MenuItems可以通过声明方式,写代码方式或通过数据邦定方式添加

同时提供了一个用于连接数据源的控件SiteMapDataSource,TreeView控件和Menu控件可以利用它实现自身于数据源的绑定。SiteMapDataSource它是通过数据邦定方式添加同时提供了一个用于连接数据源的控件SiteMapDataSource,TreeView控件和Menu控件可以利用它实现自身于数据源的绑定。SiteMapDataSource会查找项目中名为web.sitemap的 一个XML文件,如果想使用web.sitemap为名字,可以在配置文件web.config中改名。下面的Acme.sitemap就时更名后的新名字。

<configuration>
  
<system.web>
    
<siteMap>
      
<providers>
        
<remove name="AspNetXmlSiteMapProvider" />
        
<add name="AspNetXmlSiteMapProvider"
          type
="System.Web.XmlSiteMapProvider, System.Web, "
          siteMapFile
="Acme.sitemap" />
      
providers>
    
siteMap>
  
system.web>
configuration>

该XML文件中定义了关于导航的所有信息,以下是一个web.sitemap的例子。

xml version="1.0" encoding="utf-8" ?>
<siteMap>
  
<siteMapNode title="Home" url="SiteMapDataSource.aspx">
    
<siteMapNode title="Product Families">
      
<siteMapNode title="Windows" url="SiteMapDataSource.aspx?id=windows" />
      
<siteMapNode title="Office" url="SiteMapDataSource.aspx?id=office" />
      
<siteMapNode title="Mobile Devices" url="SiteMapDataSource.aspx?id=mobile" />
      
<siteMapNode title="Business Solutions" url="SiteMapDataSource.aspx?id=business" />
      
<siteMapNode title="Servers" url="SiteMapDataSource.aspx?id=servers" />
      
<siteMapNode title="Developer Tools" url="SiteMapDataSource.aspx?id=tools" />
      
<siteMapNode title="Games and XBox" url="SiteMapDataSource.aspx?id=games" />
      
<siteMapNode title="All Products" url="SiteMapDataSource.aspx?id=all" />
    
siteMapNode>
    
<siteMapNode title="Resources">
      
<siteMapNode title="Support">
        
<siteMapNode title="Support Home" url="SiteMapDataSource.aspx?id=support" />
        
<siteMapNode title="Knowledge Base" url="SiteMapDataSource.aspx?id=knowledge" />
      
siteMapNode>
      
<siteMapNode title="Downloads" url="SiteMapDataSource.aspx?id=downloads" />
      
<siteMapNode title="Windows Update" url="SiteMapDataSource.aspx?id=windowsupdate" />
      
<siteMapNode title="Office Update" url="SiteMapDataSource.aspx?id=officeupdate" />
      
<siteMapNode title="Learning Tools">
        
<siteMapNode title="Training & Certification" url="SiteMapDataSource.aspx?id=training" />
        
<siteMapNode title="Books" url="SiteMapDataSource.aspx?id=books" />
        
<siteMapNode title="Events & Webcasts" url="SiteMapDataSource.aspx?id=events" />
        
<siteMapNode title="Patterns & Practices" url="SiteMapDataSource.aspx?id=patterns" />
      
siteMapNode>
      
<siteMapNode title="Community" url="SiteMapDataSource.aspx?id=community" />
      
<siteMapNode title="Security" url="SiteMapDataSource.aspx?id=security" />
    
siteMapNode>
    
<siteMapNode title="About Microsoft">
      
<siteMapNode title="Corporate Relations" url="SiteMapDataSource.aspx?id=relations" />
      
<siteMapNode title="Investor Relations" url="SiteMapDataSource.aspx?id=investors" />
      
<siteMapNode title="Careers" url="SiteMapDataSource.aspx?id=careers" />
      
<siteMapNode title="About this Site" url="SiteMapDataSource.aspx?id=about" />
    
siteMapNode>
  
siteMapNode>
siteMap>

其中有一个根节点siteMap,然后下面是子节点,子节点有两个属性一个是显示的文本,一个是要导航到的URL,子节点可以镶套。SiteMapDataSource控件有ShowStartingNode属性,通过设置它可以可以决定是否显示根节点的第一个子节点,也就是上面代码中Text为“Home”的节点,同时可以通过StartingNodeUrl来设置其导航到的页面。

如果要将TreeView于Menu绑定到SiteMapDataSource只需按以下方式定义,其中SiteMap为SiteMapDataSource的 ID名

<asp:TreeView DataSourceID="SiteMap" RunAt="server" />
<asp:Menu DataSourceID="SiteMap" RunAt="server" />

此外,可以通过在web.sitemap中进行设置,可以控制权限,这样就能仅通过一个XML文件,让具有不同权限的人看到不同的菜单。要设置权限只要在web.sitemap中的子节点加上一个roles属性,然后在web.config文件中将securityTrimmingEnabled设置为True就可以了。下面是例子。

 

<siteMap>
  
<siteMapNode title="Home" description="" url="default.aspx">
    
<siteMapNode title="Announcements" url="Announcements.aspx"
      description
="Information for all employees" />
    
<siteMapNode title="Salaries" url="Salaries.aspx"
      description
="Salary data" roles="Managers" />
  
<siteMapNode>
siteMap>

 

<configuration>
  
<system.web>
    
<siteMap>
      
<providers>
        
<remove name="AspNetXmlSiteMapProvider" />
        
<add name="AspNetXmlSiteMapProvider"
          type
="System.Web.XmlSiteMapProvider, System.Web, "
          securityTrimmingEnabled
="true"
          siteMapFile
="web.sitemap" />
      
providers>
    
siteMap>
  
system.web>
configuration>

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/12639172/viewspace-330997/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-01-04

  • 博文量
    2376
  • 访问量
    5766190