經典凱美瑞2.0怎么樣,ASP.NET2.0入門經典(第4版)—3.5 服務器控件的類型(2)--zt

 2023-10-21 阅读 27 评论 0

摘要:http://www.oread.cn/user1/cdbookcn/archives/2006/2006912184115.html 2. SiteMapPath控件的屬性 在前面的“試一試”練習中,添加了一個SiteMapPath控件,沒有進行任何修改該控件就可以顯示Web.SiteMap文件中列出的節點。如果希望修改它以限制顯示的層次數

http://www.oread.cn/user1/cdbookcn/archives/2006/2006912184115.html

2. SiteMapPath控件的屬性

在前面的“試一試”練習中,添加了一個SiteMapPath控件,沒有進行任何修改該控件就可以顯示Web.SiteMap文件中列出的節點。如果希望修改它以限制顯示的層次數,就可以以不同的方式使用該控件;例如,可以將當前頁面的名稱顯示為一個標題:

<asp:SiteMapPath ID="PageTitle" Runat="server" ParentLevelsDisplayed="

0">

</asp:SiteMapPath>

因此,在進行以上修改之后,站點地圖節點將只顯示當前頁面的名稱;以History.aspx頁面為例,SiteMapNode控件將只顯示History

另一個可以修改的內容是修改路徑分隔符字符,例如:

<asp:SiteMapPath ID="crumbs" runat="server" PathSeparator=" : ">

</asp:SiteMapPath>

如果再次導航到History.aspx頁面,用戶將看到以下內容:

Home : About : History

除了這兩個屬性之外,開發人員還可以設置其他很多屬性以定制這個控件。表3-2列出了其中一些屬性。

? 3-2

???

???

選項(粗體表示默認值)

RenderCurrentNodeAsLink

指定是否可以單擊活動節點,或者是否以普通文本顯示當前節點

True/False

PathDirection

設置節點出現的順序是由根節點到當前節點(從左到右)還是反過來

RootToCurrent/CurrentToRoot

PathSeparator

設置所使用的節點之間的分隔符

>,任意ASCII字符

?

?

在學習了SiteMapPath控件的工作原理之后,我們將繼續學習其他兩個導航控件:Menu控件和TreeView控件。經典凱美瑞2.0怎么樣,然而,要在頁面上使用這兩個控件,需要添加一個不同類型的控件為它們提供數據;該控件是SiteMapDataSource

3. SiteMapDataSource控件

這個控件是非可視的控件,它用于以一種MenuTreeView控件能夠理解的方式處理定義在Web.SiteMap文件中的節點,從而可以修改這些控件將要顯示的內容。

要在站點中添加這個控件,只需拖動一個副本到頁面上。這就是所有的操作。VWD產生的代碼在Source View中如下所示:

<asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" />

在下一個“試一試”練習中,將自行添加這個控件以便可以使用Menu控件。NETframework。Menu控件用于為Wrox United站點提供導航的功能,從而不必輸入鏈接;讓我們看一看這是怎樣和SiteMapDataSource控件聯系在一起的。

4. Menu控件

Menu控件提供靜態和動態混合的菜單功能。在向頁面添加這個控件的時候,開發人員可以選擇將它設置為一個完全動態的菜單,以便整個站點的導航結構都可以顯示在菜單中,類似于WindowsStart菜單。另一種選擇是,可以采取一種更傳統的方法,可使用固定菜單,或者使用混合這兩種功能的方法。動態菜單使用由ASP.NET產生的客戶端JavaScript代碼(同樣,不需要開發人員輸入任何代碼)。javaweb中間件,

為了向站點添加Menu控件,首先必須添加SiteMapDataSource控件,這個控件指定了菜單可以顯示的鏈接以及這些鏈接出現的順序。在下面的“試一試”中,將在一個基于WroxUnited應用程序的示例中添加這兩個控件。

image041.gif

(1) 打開Site.Master文件并切換到Design View。將光標放在頁面左邊的nav div中,如圖3-37所示。

(2) 在將一個SiteMapDataSource控件(3-383-39都高亮顯示這個控件)拖放到nav div內的頁面上(該控件位于工具箱的Data面板上),并在屬性窗口中將該控件命名為siteData。ASP 第三方控件?

所有的鋪墊工作已經完成—— 接下來,將添加Menu控件本身。

image042.jpg

? 3-37

image043.jpg

? 3-38

(3) Menu控件拖放到緊靠SiteMapDataSource控件右邊緣的地方。您將看到一個彈出的對話框,如圖3-39所示—— 這是Smart Tasks窗口。

在這個對話框中,選擇在第3步中創建的siteData數據源。在完成該設置之后,菜單將變為如圖3-40所示。PHP中間件,

image044.jpg

? 3-39

image045.jpg

? 3-40

(4) 單擊菜單右上角的小箭頭關閉該菜單。現在,選中Menu控件并在屬性窗口中將它的StaticDisplayLevels屬性設置為2。您將會立即看到變化,如圖3-41所示。

(5) 在該控件能以在完整版本的Wrox United站點中的方式工作之前,需要設置它的一些屬性值。切換到Source View并在代碼中添加如下屬性:

<asp:Menu ID="Menu1" runat="server" DataSourceID="siteData"

StaticDisplayLevels="2"

orientation="Vertical"

StaticSubMenuIndent="0"

disappearafter="200"

AccessKey="m"

EnableViewState="false">

<DynamicMenuStyle CssClass="dynamicMenu" />

<DynamicMenuItemStyle CssClass="dynamicMenuItem" />

</asp:Menu>

image046.jpg

? 3-41

(6) 現在再次運行站點(按下Ctrl+F5不帶調試功能啟動站點),將看到如圖3-42所示的畫面。JSP頁面,

image047.jpg

? 3-42

注意可以將鼠標光標停留在About鏈接上,片刻之后一個包括History頁面的子菜單將顯示出來。這就是動態菜單的最佳形式—— 很不錯吧!

操作回顧

添加到Master頁面的Menu控件將讀取SiteMapDataSource控件(siteData)的內容并根據保存在該數據源中的數據顯示一組鏈接。SiteMapDataSource控件本身不需要任何修改(除了重新命名以外)—— 默認情況下,SiteMapDataSource將讀取Web.SiteMap文件并扮演Menu控件的中間人,以使它能夠根據Web.SiteMap文件的內容顯示鏈接。

如果需要,可以使用表3-3所示的屬性定制SiteMapDataSource

? 3-3

???

???

EnableViewSatae

True/False

指定SiteMapDataSource控件在回傳(postback)的時候是否保留數據

ShowStartingNode

True/False

指定在依賴于該數據源的控件上是否顯示根節點

SiteMapProvider

任何合法的提供程序

可用于指定一個自定義數據提供程序(例如,如果站點地圖數據存儲在一個完全不同的結構之中,如.csv文件或數據庫,而不是Web.SiteMap文件中,那么就必須設置這個屬性)

StartFromCurrentNode

True/False

如果設置為true,那么只有當前節點(活動頁面)的子鏈接而不是整個層次結構會顯示出來

StartingNodeOffset

整數值

用于指定從哪個層次結構開始顯示。2.0、如果希望Menu控件只顯示子鏈接,而不是整個站點的完整結構,那么這個屬性會有用。如果在Wrox United站點中將該屬性的值設置為1,那么菜單將忽略第一級菜單項,而只顯示下面的一個層次結構,因此,在Wrox United的層次結構中,這將顯示Future and Past FixturesHistoryNews以及類似的鏈接

StartingNodeUrl

Web.SiteMap文件中定義的表示頁面URL的字符串

用于指定一個啟動層次結構的不同位置。

?

將菜單綁定到SiteMapDataSource控件是從Web.SiteMap數據文件創建鏈接層次結構的一種簡便方法,但使用這個控件還可以完成更多的事情,包括綁定到完全不同的數據源,將控件(Menu控件以外)與數據相結合。如果必須經常處理以完全不同的格式(Web.SiteMap以外的格式)存儲的站點地圖數據,那么為了利用SiteMapDataSource控件,必須對SiteMapProvider類進行自定義。創建自定義的數據提供程序是一個相當復雜的過程(這已超出本章的討論范圍),要獲得關于該過程的更多信息,可以參考由Bill Evjen編寫、Wrox出版社出版的Professional ASP.NET 2.0。列舉一些基本的ASP.NET控件類型、

在這個示例中,對Menu控件的修改非常少,只是為它添加了一些屬性值。下面的代碼顯示了添加的屬性值:

<asp:Menu ID="Menu1" runat="server" DataSourceID="siteData"

StaticDisplayLevels="2"

orientation="Vertical"

StaticSubMenuIndent="0"

disappearafter="200"

AccessKey="m"

EnableViewState="false">

<DynamicMenuStyle CssClass="dynamicMenu" />

<DynamicMenuItemStyle CssClass="dynamicMenuItem" />

</asp:Menu>

Menu控件本身的其他屬性都很簡單。這個示例在Properties面板中設置了列表第一行的兩個屬性(DataSourceIDStaticDisplayLevels)。其他屬性控制如下內容:

?????? Orientation:用于在頁面上設置一個水平菜單條。

?????? StaticSubMenuIndent:控制顯示了子菜單條目的縮進深度,如果這些菜單層級被設置為以靜態模式顯示。列舉ASP.NET Web常用控件類型?

?????? DisappearAfter:指定彈出式菜單在消失前的可視時間長度。

?????? AccessKey:設置鍵盤快捷鍵以增強可用性。

?????? EanbleViewstateASP.NET的功能之一,如果將其設置為true,則頁面在回送到服務器時會維護控件的狀態。例如,在向服務器提交數據時,對文本框中的值保持不變。這個控件沒有必要使用該屬性,而且將其禁用將對頁面的性能有微小的改善。ASP.NET編程入門與應用?

除了這些屬性以外還有兩個屬性,它們幫助定義所顯示控件的可視風格。DynamicMenuStyle控制彈出式菜單本身的外觀,而DynamicMenuItemStyle控制鏈接的外觀。這些內容的風格由CSS控制。第5章將詳細介紹。

本章最后介紹的導航控件是TreeView控件。NET FRAMEWORK下載。這個控件在用法上非常類似于Menu控件。

5. TreeView控件

TreeViewMenu控件在使用上非常類似,但顯示的結果卻完全不同。使用TreeView控件,其實就類似于使用Windows Explorer處理保存在文件系統內的文件、展開或折疊帶有子層次結構的節點。

部署該控件非常類似于部署Menu控件;只需將該控件拖放到頁面上并選擇使用SiteMapDataSource控件提供數據。如果在Wrox United站點上使用該控件,那么頁面將如圖3-43所示。ASP.NET程序設計基礎教程課后答案?

注意在圖3-43Home節點和Fixtures節點都是展開的,而About節點沒有展開。如果重新放置這個控件,那么除了一些細小的樣式差異之外,可以輕松地使用這個控件代替Menu控件進行導航。

image048.jpg

? 3-43?

轉載于:https://www.cnblogs.com/Nina-piaoye/archive/2007/02/12/647884.html

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/5/155987.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息