【聖炎¢天樂】asp.net 2.0中的站點導航

iDotNetSpace發表於2008-06-03

asp.net 2.0中提供了兩種導航控制元件

  •    TreeView控制元件
    • 可擴充套件和摺疊的分支
    • 節點是可導航, 可選擇的,也可新增選擇框
    • TreeNode物件定義的內容
    • TreeNodes可以通過宣告方式,寫程式碼方式或通過資料邦定方式新增
    • TreeNodes可以按需裝載
  •     Menu控制元件
    • Web頁面中提供下拉或彈出式的選單
    • Items 是導航的或可選擇的
    • Menu 控制元件顯示可以是豎直方向也可以是水平方向
    • MenuItems可以通過宣告方式,寫程式碼方式或通過資料邦定方式新增

同時提供了一個用於連線資料來源的控制元件SiteMapDataSourceTreeView控制元件Menu控制元件可以利用它實現自身於資料來源的繫結。SiteMapDataSource它是通過資料邦定方式新增同時提供了一個用於連線資料來源的控制元件SiteMapDataSourceTreeView控制元件Menu控制元件可以利用它實現自身於資料來源的繫結。SiteMapDataSource會查詢專案中名為web.sitemap 一個XML檔案,如果想使用web.sitemap為名字,可以在配置檔案web.config中改名。下面的Acme.sitemap就時更名後的新名字。

【聖炎¢天樂】asp.net 2.0中的站點導航<configuration>
【聖炎¢天樂】asp.net 2.0中的站點導航  
<system.web>
【聖炎¢天樂】asp.net 2.0中的站點導航    
<siteMap>
【聖炎¢天樂】asp.net 2.0中的站點導航      
<providers>
【聖炎¢天樂】asp.net 2.0中的站點導航        
<remove name="AspNetXmlSiteMapProvider" />
【聖炎¢天樂】asp.net 2.0中的站點導航        
<add name="AspNetXmlSiteMapProvider"
【聖炎¢天樂】asp.net 2.0中的站點導航          type
="System.Web.XmlSiteMapProvider, System.Web, 【聖炎¢天樂】asp.net 2.0中的站點導航"
【聖炎¢天樂】asp.net 2.0中的站點導航          siteMapFile
="Acme.sitemap" />
【聖炎¢天樂】asp.net 2.0中的站點導航      
providers>
【聖炎¢天樂】asp.net 2.0中的站點導航    
siteMap>
【聖炎¢天樂】asp.net 2.0中的站點導航  
system.web>
【聖炎¢天樂】asp.net 2.0中的站點導航
configuration>
【聖炎¢天樂】asp.net 2.0中的站點導航

XML檔案中定義了關於導航的所有資訊,以下是一個web.sitemap的例子。

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

其中有一個根節點siteMap,然後下面是子節點,子節點有兩個屬性一個是顯示的文字,一個是要導航到的URL,子節點可以鑲套。SiteMapDataSource控制元件有ShowStartingNode屬性,通過設定它可以可以決定是否顯示根節點的第一個子節點,也就是上面程式碼中Text為“Home”的節點,同時可以通過StartingNodeUrl來設定其導航到的頁面。

如果要將TreeViewMenu繫結到SiteMapDataSource只需按以下方式定義,其中SiteMapSiteMapDataSource ID

【聖炎¢天樂】asp.net 2.0中的站點導航<asp:TreeView DataSourceID="SiteMap" RunAt="server" />
【聖炎¢天樂】asp.net 2.0中的站點導航
<asp:Menu DataSourceID="SiteMap" RunAt="server" />
【聖炎¢天樂】asp.net 2.0中的站點導航
【聖炎¢天樂】asp.net 2.0中的站點導航

此外,可以通過在web.sitemap中進行設定,可以控制許可權,這樣就能僅通過一個XML檔案,讓具有不同許可權的人看到不同的選單。要設定許可權只要在web.sitemap中的子節點加上一個roles屬性,然後在web.config檔案中將securityTrimmingEnabled設定為True就可以了。下面是例子。

 

【聖炎¢天樂】asp.net 2.0中的站點導航<siteMap>
【聖炎¢天樂】asp.net 2.0中的站點導航  
<siteMapNode title="Home" description="" url="default.aspx">
【聖炎¢天樂】asp.net 2.0中的站點導航    
<siteMapNode title="Announcements" url="Announcements.aspx"
【聖炎¢天樂】asp.net 2.0中的站點導航      description
="Information for all employees" />
【聖炎¢天樂】asp.net 2.0中的站點導航    
<siteMapNode title="Salaries" url="Salaries.aspx"
【聖炎¢天樂】asp.net 2.0中的站點導航      description
="Salary data" roles="Managers" />
【聖炎¢天樂】asp.net 2.0中的站點導航  
<siteMapNode>
【聖炎¢天樂】asp.net 2.0中的站點導航
siteMap>

 

【聖炎¢天樂】asp.net 2.0中的站點導航<configuration>
【聖炎¢天樂】asp.net 2.0中的站點導航  
<system.web>
【聖炎¢天樂】asp.net 2.0中的站點導航    
<siteMap>
【聖炎¢天樂】asp.net 2.0中的站點導航      
<providers>
【聖炎¢天樂】asp.net 2.0中的站點導航        
<remove name="AspNetXmlSiteMapProvider" />
【聖炎¢天樂】asp.net 2.0中的站點導航        
<add name="AspNetXmlSiteMapProvider"
【聖炎¢天樂】asp.net 2.0中的站點導航          type
="System.Web.XmlSiteMapProvider, System.Web, 【聖炎¢天樂】asp.net 2.0中的站點導航"
【聖炎¢天樂】asp.net 2.0中的站點導航          securityTrimmingEnabled
="true"
【聖炎¢天樂】asp.net 2.0中的站點導航          siteMapFile
="web.sitemap" />
【聖炎¢天樂】asp.net 2.0中的站點導航      
providers>
【聖炎¢天樂】asp.net 2.0中的站點導航    
siteMap>
【聖炎¢天樂】asp.net 2.0中的站點導航  
system.web>
【聖炎¢天樂】asp.net 2.0中的站點導航
configuration>

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-330997/,如需轉載,請註明出處,否則將追究法律責任。

相關文章