国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

在ASP.NET 2.0中建立站點導(dǎo)航層次(2)

2024-07-10 13:12:42
字體:
供稿:網(wǎng)友

  在下面的例子中,你看到的treeview和menu控件為不同的區(qū)域和操作(例如nodestyle和hovernodestyle)配置了一些樣式屬性。例子中的treeview和menu控件都連接到頁面上的同一個sitemapdatasource控件。sitemappath控件通過web.config文件中設(shè)置的默認的sitemapprovider來訪問相同的數(shù)據(jù)。

  以下是引用片段:
<asp:treeview id="treeview1" forecolor="white" datasourceid="sitemapdatasource1" nodeindent="0" nodestyle-childnodespadding="10" runat="server">  
<levelstyles>  
<asp:treenodestyle font-bold="true"/>  
<asp:treenodestyle />  
<asp:treenodestyle font-size="x-small"/>  
</levelstyles>  
<nodestyle forecolor="white" horizontalpadding="5"/>  
<selectednodestyle backcolor="lightblue" forecolor="blue" />  
<hovernodestyle font-underline="true" />  
</asp:treeview>  
<asp:sitemappath id="sitemappath1" runat="server" />  
<asp:menu id="menu1" datasourceid="sitemapdatasource1" runat="server">  
<dynamicselectedstyle backcolor="lightblue" forecolor="blue" />  
<dynamichoverstyle font-underline="true" />  
<statichoverstyle font-underline="true" />  
</asp:menu>  
<asp:sitemapdatasource id="sitemapdatasource1" runat="server" />

  使用站點導(dǎo)航api

  站點導(dǎo)航api是使用可配置的提供程序訪問導(dǎo)航數(shù)據(jù)的編程抽象內(nèi)容。站點導(dǎo)航提供程序把導(dǎo)航數(shù)據(jù)的存儲細節(jié)信息與api的其它部分隔離開來。站點導(dǎo)航api通過sitemap和sitemapnode類來暴露導(dǎo)航數(shù)據(jù)。sitemap類返回與當前頁面對應(yīng)的sitemapnode實例。它還可以訪問那些為站點導(dǎo)航特性配置的提供程序。sitemapprovider為執(zhí)行下面一些事務(wù)提供了豐富的api:

  · 依據(jù)當前的httpcontext或任意url檢索sitemapnode實例。

  · 檢索sitemapnode的父或子節(jié)點。

  · 訪問當前頁面的sitemapnode,以及整個導(dǎo)航層次中的根sitemapnode。

  · 執(zhí)行授權(quán)規(guī)則,這樣就保證了提供程序只返回用戶可以看見的節(jié)點。

  sitemapnode實例暴露的基本導(dǎo)航信息和功能包括:

  · url、title和description屬性,以及開發(fā)者給sitemapnode添加的自定義屬性。

  · 獲取某個節(jié)點的父和子節(jié)點。

  · 在某個節(jié)點的前后節(jié)點之間進行導(dǎo)航。

  · 獲取sitemapprovider實例的指針,它返回一個節(jié)點。

  asp.net發(fā)布的時候帶有xmlsitemapprovider提供程序。該提供程序使用xml文件(web.sitemap)中的數(shù)據(jù),并根據(jù)數(shù)據(jù)返回sitemapnode實例。xmlsitemapprovider有下面一些功能:

  · 多個站點地圖(sitemap)文件可以鏈接在一起來構(gòu)建一個"虛擬的"導(dǎo)航數(shù)據(jù)集合。

  · 多個xmlsitemapprovider實例可以鏈接到一起來構(gòu)建一個"虛擬的"導(dǎo)航數(shù)據(jù)集合。

  · 提供程序可以根據(jù)站點當前的文件授權(quán)和url授權(quán)規(guī)則來返回過慮后的節(jié)點。

  有了sitemapprovider指針之后,你就可以根據(jù)url來檢索特定節(jié)點的站點導(dǎo)航數(shù)據(jù)。它會讓你獲取站點導(dǎo)航數(shù)據(jù)中的sitemapnode實例指針??梢詸z索任意sitemapnode實例的能力和從任何sitemapnode開始進行站點導(dǎo)航的能力組合在一起,使你能夠輕易地遍歷站點的導(dǎo)航數(shù)據(jù)。

  作為一名開發(fā)者,你也可以把導(dǎo)航數(shù)據(jù)用其它的格式進行存儲(例如作為關(guān)系數(shù)據(jù)存儲在數(shù)據(jù)庫中)。接著你應(yīng)該構(gòu)建一個衍生自sitemapprovider的自定義提供程序。

  使用站點導(dǎo)航類編程

  你可以在代碼中編程獲取導(dǎo)航數(shù)據(jù)。編程獲取站點導(dǎo)航數(shù)據(jù)的出發(fā)點是sitemap類。在這個類中有大量的靜態(tài)方法,其中最重要的一個是currentnode屬性。在網(wǎng)站的任何頁面中,你都可以調(diào)用sitemap.currentnode來引用與當前的執(zhí)行頁面相匹配的導(dǎo)航數(shù)據(jù)片斷。導(dǎo)航數(shù)據(jù)是用sitemapnode實例的形式返回的--當你調(diào)用sitemap.currentnode的時候,該屬性返回與當前頁面對應(yīng)的sitemapnode實例。站點導(dǎo)航特性根據(jù)存儲在xml文件中的導(dǎo)航數(shù)據(jù)返回正確的節(jié)點。

  下面的例子演示了一個帶有簡單的分頁功能的用戶控件。在顯示的頁面中,用戶控件位于頁面的底部中間。最初該鏈接的內(nèi)容是"下一個主題"。當你點擊這個鏈接的時候,用戶控件調(diào)用sitemapnode對象來檢測當前頁面的附近是否存在頁面。代碼檢測sitemap.currentnode屬性,看它的前面是否有頁面(sitemap.currentnode.previoussibling)、它的后面是否有頁面(sitemap.currentnode.nextsibling)。如果存在頁面,用戶控件就顯示超鏈接,并把超鏈接的navigateurl屬性設(shè)置為附近節(jié)點的url屬性。

  如果你點擊頁面左部的treeview鏈接,可以看到用戶控件是如何自動地顯示適當?shù)?前一個主題"和"后一個主題"鏈接的。用戶控件還顯示了另外一個超鏈接,你可以點擊它返回主頁。如果你查看這個超鏈接如何工作就會發(fā)現(xiàn),該控件利用了主頁元素中的自定義屬性"customattribute"。該控件演示了如何使用sitemapnode的默認索引器來檢索自定義屬性的值。

  以下是引用片段:
<script language="vb" runat="server">  
sub page_load()  
if (not sitemap.currentnode.nextsibling is nothing) then  
nexttopic.navigateurl = sitemap.currentnode.nextsibling.url  
else  
nexttopic.visible = false  
separator.visible = false  
end if  

if (not sitemap.currentnode.previoussibling is nothing)  
prevtopic.navigateurl = sitemap.currentnode.previoussibling.url  
else  
prevtopic.visible = false  
separator.visible = false  
end if  

'使用findsitemapnode查找url中的節(jié)點并提取一些信息  
dim rootnode as sitemapnode = sitemap.provider.findsitemapnode("~/home.aspx")  
gohome.navigateurl = rootnode.url  
gohome.tooltip = rootnode.description  
gohome.text = rootnode("customattribute")  
end sub  
</script>  

中國最大的web開發(fā)資源網(wǎng)站及技術(shù)社區(qū),
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 五台县| 顺平县| 彭阳县| 无锡市| 潜江市| 信宜市| 明光市| 伊川县| 万宁市| 温宿县| 新邵县| 惠来县| 万源市| 贡嘎县| 元谋县| 东兴市| 壶关县| 轮台县| 平舆县| 呼伦贝尔市| 改则县| 巴中市| 洛扎县| 岳普湖县| 陵水| 焦作市| 长丰县| 泉州市| 玉山县| 都江堰市| 马公市| 宣威市| 盐边县| 那坡县| 上蔡县| 宁海县| 长葛市| 辉县市| 靖江市| 逊克县| 辉南县|