版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第第7章章 站點導(dǎo)航控件站點導(dǎo)航控件對于較大型的網(wǎng)站,可以利用對于較大型的網(wǎng)站,可以利用ASP.NET站點導(dǎo)航控件站點導(dǎo)航控件實現(xiàn)站點導(dǎo)航。實現(xiàn)站點導(dǎo)航。站點導(dǎo)航的作用就像城市道路的路標(biāo),使用戶操作時站點導(dǎo)航的作用就像城市道路的路標(biāo),使用戶操作時清楚了解自已所處的位置。清楚了解自已所處的位置。 7.1 ASP.NET站點導(dǎo)航概述站點導(dǎo)航概述7.1.1 站點導(dǎo)航的功能站點導(dǎo)航的功能 若要為網(wǎng)站創(chuàng)建一致的、容易管理的導(dǎo)航解決方案,若要為網(wǎng)站創(chuàng)建一致的、容易管理的導(dǎo)航解決方案,可以使用可以使用ASP.NET站點導(dǎo)航。站點導(dǎo)航。ASP.NET站點導(dǎo)航提供下列站點導(dǎo)航提供下列功能:功能:l 站點地圖。站
2、點地圖??梢允褂谜军c地圖描述站點的邏輯結(jié)構(gòu)。可以使用站點地圖描述站點的邏輯結(jié)構(gòu)。接著通過在添加或移除頁面時修改站點地圖(而不接著通過在添加或移除頁面時修改站點地圖(而不是修改所有網(wǎng)頁的超鏈接)來管理頁導(dǎo)航。是修改所有網(wǎng)頁的超鏈接)來管理頁導(dǎo)航。l ASP.NET導(dǎo)航控件。導(dǎo)航控件??梢允褂每梢允褂肁SP.NET控件在網(wǎng)頁控件在網(wǎng)頁上顯示導(dǎo)航菜單。導(dǎo)航菜單以站點地圖為基礎(chǔ)。上顯示導(dǎo)航菜單。導(dǎo)航菜單以站點地圖為基礎(chǔ)。l 編程控件。編程控件??梢砸源a方式使用可以以代碼方式使用ASP.NET站點導(dǎo)航,以創(chuàng)站點導(dǎo)航,以創(chuàng)建自定義導(dǎo)航控件或修改在導(dǎo)航菜單中顯示的信息的位置。建自定義導(dǎo)航控件或修改在導(dǎo)航菜
3、單中顯示的信息的位置。l 訪問規(guī)則。訪問規(guī)則。可以配置用于在導(dǎo)航菜單中顯示或隱藏鏈接的可以配置用于在導(dǎo)航菜單中顯示或隱藏鏈接的訪問規(guī)則。訪問規(guī)則。l 自定義站點地圖提供程序。自定義站點地圖提供程序??梢詣?chuàng)建自定義站點地圖提供可以創(chuàng)建自定義站點地圖提供程序,以便使用自己的站點地圖后端(如存儲鏈接信息的程序,以便使用自己的站點地圖后端(如存儲鏈接信息的數(shù)據(jù)庫),并將提供程序插入到數(shù)據(jù)庫),并將提供程序插入到ASP.NET站點導(dǎo)航系統(tǒng)。站點導(dǎo)航系統(tǒng)。 7.1.2 站點導(dǎo)航的工作方式站點導(dǎo)航的工作方式通過通過ASP.NET站點導(dǎo)航,可以按層次結(jié)構(gòu)描述站點的布站點導(dǎo)航,可以按層次結(jié)構(gòu)描述站點的布局。例如
4、,一個大學(xué)網(wǎng)站共有局。例如,一個大學(xué)網(wǎng)站共有11頁,其布局如下:頁,其布局如下:中華大學(xué)中華大學(xué)院系設(shè)置院系設(shè)置計算機學(xué)院計算機學(xué)院電子信息學(xué)院電子信息學(xué)院數(shù)學(xué)學(xué)院數(shù)學(xué)學(xué)院物理學(xué)院物理學(xué)院職能部門職能部門教務(wù)處教務(wù)處財務(wù)處財務(wù)處學(xué)生工作處學(xué)生工作處科技處科技處7.1.3 站點導(dǎo)航控件站點導(dǎo)航控件創(chuàng)建一個反映站點結(jié)構(gòu)的站點地圖只完成了創(chuàng)建一個反映站點結(jié)構(gòu)的站點地圖只完成了ASP.NET站站點導(dǎo)航系統(tǒng)的一部分。導(dǎo)航系統(tǒng)的另一部分是在點導(dǎo)航系統(tǒng)的一部分。導(dǎo)航系統(tǒng)的另一部分是在ASP.NET網(wǎng)頁中顯示導(dǎo)航結(jié)構(gòu),這樣用戶就可以在站點內(nèi)輕松地移網(wǎng)頁中顯示導(dǎo)航結(jié)構(gòu),這樣用戶就可以在站點內(nèi)輕松地移動。通過使用
5、下列動。通過使用下列ASP.NET站點導(dǎo)航控件,可以輕松地在站點導(dǎo)航控件,可以輕松地在頁面中建立導(dǎo)航信息:頁面中建立導(dǎo)航信息:lTreeView:此控件顯示一個樹狀結(jié)構(gòu)或菜單,讓用戶可以遍此控件顯示一個樹狀結(jié)構(gòu)或菜單,讓用戶可以遍歷訪問站點中的不同頁面。單擊包含子節(jié)點的節(jié)點可將其展歷訪問站點中的不同頁面。單擊包含子節(jié)點的節(jié)點可將其展開或折疊。開或折疊。lMenu:此控件顯示一個可展開的菜單,讓用戶可以遍歷訪問此控件顯示一個可展開的菜單,讓用戶可以遍歷訪問站點中的不同頁面。將光標(biāo)懸停在菜單上時,將展開包含子站點中的不同頁面。將光標(biāo)懸停在菜單上時,將展開包含子節(jié)點的節(jié)點。節(jié)點的節(jié)點。lSiteMa
6、pPath:此控件顯示導(dǎo)航路徑(也稱為面包屑或眉毛鏈此控件顯示導(dǎo)航路徑(也稱為面包屑或眉毛鏈接)向用戶顯示當(dāng)前頁面的位置,并以鏈接的形式顯示返回接)向用戶顯示當(dāng)前頁面的位置,并以鏈接的形式顯示返回主頁的路徑。此控件提供了許多可供自定義鏈接的外觀的選主頁的路徑。此控件提供了許多可供自定義鏈接的外觀的選項。項。7.2 站點地圖站點地圖站點地圖是一種以站點地圖是一種以.sitemap為擴展名的標(biāo)準(zhǔn)為擴展名的標(biāo)準(zhǔn)XML文件,主要文件,主要為站點導(dǎo)航控件提供站點層次結(jié)構(gòu)信息,默認名為為站點導(dǎo)航控件提供站點層次結(jié)構(gòu)信息,默認名為Web.sitemap。 “添加新項添加新項”對話框?qū)υ捒?web.sitem
7、ap站點地圖站點地圖 站點地圖站點地圖是一個標(biāo)準(zhǔn)是一個標(biāo)準(zhǔn)XML文件。其中,第一個標(biāo)記用于標(biāo)文件。其中,第一個標(biāo)記用于標(biāo)識版本和編碼方式,識版本和編碼方式,siteMap是站點地圖根節(jié)點標(biāo)記,包含若是站點地圖根節(jié)點標(biāo)記,包含若干個干個siteMapNode子節(jié)點,一個子節(jié)點,一個siteMapNode子節(jié)點下又可以子節(jié)點下又可以包含若干個包含若干個siteMapNode子節(jié)點,構(gòu)成一種層次結(jié)構(gòu)。子節(jié)點,構(gòu)成一種層次結(jié)構(gòu)。siteMapNode節(jié)點的常用屬性如下表所示:節(jié)點的常用屬性如下表所示:屬性屬性說明說明url設(shè)置用于節(jié)點導(dǎo)航的設(shè)置用于節(jié)點導(dǎo)航的URL地址。在整個站點地圖文件中,該屬地址。
8、在整個站點地圖文件中,該屬性必須唯一性必須唯一title設(shè)置節(jié)點名稱設(shè)置節(jié)點名稱description設(shè)計節(jié)點說明文字設(shè)計節(jié)點說明文字key定義當(dāng)前節(jié)點的關(guān)鍵字定義當(dāng)前節(jié)點的關(guān)鍵字roles定義允許查找該站點地圖文件的角色集合,多個角色可用分號定義允許查找該站點地圖文件的角色集合,多個角色可用分號(;)或逗號()或逗號(,)分隔)分隔Provider定義處理其他站點地圖文件的站點導(dǎo)航提供程序名稱,默認為定義處理其他站點地圖文件的站點導(dǎo)航提供程序名稱,默認為XmlSiteMapProvidersiteMapFile設(shè)置包含其他相關(guān)設(shè)置包含其他相關(guān)SiteMapNode元素的站點地圖文件元素的站點
9、地圖文件7.3 TreeView控件控件 TreeView控件又稱為樹形導(dǎo)航控件。它的顯示類似于一控件又稱為樹形導(dǎo)航控件。它的顯示類似于一棵橫向的樹,可以展開或折疊樹的節(jié)點來分類查看、管理信棵橫向的樹,可以展開或折疊樹的節(jié)點來分類查看、管理信息,非常直觀。息,非常直觀。一個一個TreeView控件控件一個節(jié)點可以同時是父節(jié)點和子節(jié)點,但是不能同時為根一個節(jié)點可以同時是父節(jié)點和子節(jié)點,但是不能同時為根節(jié)點、父節(jié)點和葉節(jié)點。節(jié)點為根節(jié)點、父節(jié)點還是葉節(jié)點節(jié)點、父節(jié)點和葉節(jié)點。節(jié)點為根節(jié)點、父節(jié)點還是葉節(jié)點決定著節(jié)點的幾種可視化屬性和行為屬性。決定著節(jié)點的幾種可視化屬性和行為屬性。l 包含其他節(jié)點的
10、節(jié)點稱為包含其他節(jié)點的節(jié)點稱為父節(jié)點父節(jié)點(ParentNode)。)。l 被其他節(jié)點包含的節(jié)點稱為被其他節(jié)點包含的節(jié)點稱為子節(jié)點子節(jié)點(ChildNode)。)。l 沒有子節(jié)點的節(jié)點稱為沒有子節(jié)點的節(jié)點稱為葉節(jié)點葉節(jié)點(LeafNode)。)。l 不被其他任何節(jié)點包含同時是所有其他節(jié)點的上級的節(jié)不被其他任何節(jié)點包含同時是所有其他節(jié)點的上級的節(jié)點是點是根節(jié)點根節(jié)點(RootNode)。)。TreeView控件由節(jié)點組成。樹中的每個項都稱為一個節(jié)控件由節(jié)點組成。樹中的每個項都稱為一個節(jié)點,它由一個點,它由一個TreeNode對象表示。節(jié)點類型的定義如下:對象表示。節(jié)點類型的定義如下:7.3.1
11、TreeNode類類TreeView控件中一個節(jié)點就是一個控件中一個節(jié)點就是一個TreeNode類對象。類對象。 屬性屬性 說明說明 Checked獲取或設(shè)置一個值,該值指示節(jié)點的復(fù)選框是否被選中獲取或設(shè)置一個值,該值指示節(jié)點的復(fù)選框是否被選中ChildNodes獲取獲取TreeNodeCollection集合,該集合包含當(dāng)前節(jié)點的第一級子節(jié)集合,該集合包含當(dāng)前節(jié)點的第一級子節(jié)點點Depth獲取節(jié)點的深度獲取節(jié)點的深度Expanded獲取或設(shè)置一個值,該值指示是否展開節(jié)點獲取或設(shè)置一個值,該值指示是否展開節(jié)點ImageToolTip獲取或設(shè)置在節(jié)點旁邊顯示的圖像的工具提示文本獲取或設(shè)置在節(jié)點旁
12、邊顯示的圖像的工具提示文本ImageUrl獲取或設(shè)置節(jié)點旁顯示的圖像的獲取或設(shè)置節(jié)點旁顯示的圖像的URLNavigateUrl獲取或設(shè)置單擊節(jié)點時導(dǎo)航到的獲取或設(shè)置單擊節(jié)點時導(dǎo)航到的URLParent獲取當(dāng)前節(jié)點的父節(jié)點獲取當(dāng)前節(jié)點的父節(jié)點Selected獲取或設(shè)置一個值,該值指示是否選擇節(jié)點獲取或設(shè)置一個值,該值指示是否選擇節(jié)點ShowCheckBox獲取或設(shè)置一個值,該值指示是否在節(jié)點旁顯示一個復(fù)選框獲取或設(shè)置一個值,該值指示是否在節(jié)點旁顯示一個復(fù)選框Target獲取或設(shè)置用來顯示與節(jié)點關(guān)聯(lián)的網(wǎng)頁內(nèi)容的目標(biāo)窗口或框架獲取或設(shè)置用來顯示與節(jié)點關(guān)聯(lián)的網(wǎng)頁內(nèi)容的目標(biāo)窗口或框架Text獲取或設(shè)置為
13、獲取或設(shè)置為TreeView控件中的節(jié)點顯示的文本控件中的節(jié)點顯示的文本ToolTip獲取或設(shè)置節(jié)點的工具提示文本獲取或設(shè)置節(jié)點的工具提示文本Value獲取或設(shè)置用于存儲有關(guān)節(jié)點的任何其他數(shù)據(jù)(如用于處理回發(fā)事獲取或設(shè)置用于存儲有關(guān)節(jié)點的任何其他數(shù)據(jù)(如用于處理回發(fā)事件的數(shù)據(jù))的非顯示值件的數(shù)據(jù))的非顯示值ValuePath獲取從根節(jié)點到當(dāng)前節(jié)點的路徑獲取從根節(jié)點到當(dāng)前節(jié)點的路徑方法方法說明說明Collapse折疊當(dāng)前樹節(jié)點折疊當(dāng)前樹節(jié)點CollapseAll折疊當(dāng)前節(jié)點及其所有子節(jié)點折疊當(dāng)前節(jié)點及其所有子節(jié)點Expand展開當(dāng)前樹節(jié)點展開當(dāng)前樹節(jié)點ExpandAll展開當(dāng)前節(jié)點及其所有子節(jié)點
14、展開當(dāng)前節(jié)點及其所有子節(jié)點Select選擇選擇TreeView控件中的當(dāng)前節(jié)點控件中的當(dāng)前節(jié)點ToggleExpandState切換節(jié)點的展開和折疊狀態(tài)切換節(jié)點的展開和折疊狀態(tài)TreeNode類類提供了以下提供了以下構(gòu)造函數(shù)構(gòu)造函數(shù):l public TreeNode()l public TreeNode (string text)l public TreeNode (string text,string value)l public TreeNode (string text,string value,string imageUrl)l public TreeNode (string tex
15、t,string value,string imageUrl,string navigateUrl,string target)其中,參數(shù)其中,參數(shù)text指定指定TreeView控件中的節(jié)點顯示的文本。控件中的節(jié)點顯示的文本。value指定與節(jié)點關(guān)聯(lián)的補充數(shù)據(jù),如用于處理回發(fā)事件的數(shù)指定與節(jié)點關(guān)聯(lián)的補充數(shù)據(jù),如用于處理回發(fā)事件的數(shù)據(jù)。據(jù)。imageUrl指定節(jié)點旁顯示的圖像的指定節(jié)點旁顯示的圖像的URL。navigateUrl指指定單擊節(jié)點時鏈接到的定單擊節(jié)點時鏈接到的URL。target指定單擊節(jié)點時用來顯示指定單擊節(jié)點時用來顯示鏈接到的網(wǎng)頁內(nèi)容的目標(biāo)窗口或框架。鏈接到的網(wǎng)頁內(nèi)容的目標(biāo)窗口
16、或框架。7.3.2 TreeView控件的屬性、方法和事件控件的屬性、方法和事件1. TreeView控件的屬性控件的屬性(1)DataSourceID屬性屬性 該屬性指定該屬性指定TreeView控件的數(shù)據(jù)源控件的控件的數(shù)據(jù)源控件的ID屬性。例屬性。例如,可以指定與如,可以指定與XML文件綁定的文件綁定的XmlDataSource控件或控件或與站點地圖綁定的與站點地圖綁定的SiteDataSource控件的控件的ID。(2)ExpandDepth屬性屬性該屬性獲取或設(shè)置第一次顯示該屬性獲取或設(shè)置第一次顯示TreeView控件時所展控件時所展開的層次數(shù)。例如,若該屬性設(shè)為開的層次數(shù)。例如,若該
17、屬性設(shè)為2,則將展開根節(jié)點及,則將展開根節(jié)點及根節(jié)點下方緊鄰的所有子節(jié)點。根節(jié)點下方緊鄰的所有子節(jié)點。(3)SelectedNode屬性屬性該屬性返回用戶從該屬性返回用戶從TreeView控件中選定的一個控件中選定的一個TreeNode對象。例如,以下語句在標(biāo)簽對象。例如,以下語句在標(biāo)簽Label1中顯示選擇節(jié)點的文本:中顯示選擇節(jié)點的文本: Label1.Text=選擇的節(jié)點是選擇的節(jié)點是: + TreeView1.SelectedNode.Text;(4)Nodes屬性屬性Nodes屬性是屬性是TreeView控件中所有節(jié)點的集合,一個節(jié)控件中所有節(jié)點的集合,一個節(jié)點是一個點是一個Tree
18、Node對象??梢酝ㄟ^索引來表示對象??梢酝ㄟ^索引來表示Nodes集合中集合中的元素(索引從零開始),例如:的元素(索引從零開始),例如:TreeView1.Nodes表示表示TreeView1控件的所有節(jié)點集合??丶乃泄?jié)點集合。TreeView1.Nodes0表示表示TreeView1控件中第一個根節(jié)點??丶械谝粋€根節(jié)點。TreeView1.Nodes0.ChildNodes表示表示TreeView1控件中第一個根節(jié)點控件中第一個根節(jié)點的子節(jié)點集合。的子節(jié)點集合。TreeView1.Nodes0.ChildNodes1表示表示TreeView1控件中第一個根節(jié)控件中第一個根節(jié)點的第點的
19、第2個子節(jié)點。個子節(jié)點。2. TreeView控件的方法控件的方法方法方法說明說明ExpandAll 打開樹中的每個節(jié)點打開樹中的每個節(jié)點FindNode 檢索檢索TreeView控件中指定值路徑處的控件中指定值路徑處的TreeNode對象對象3. TreeView控件的事件控件的事件事件事件說明說明SelectedNodeChanged 當(dāng)選擇當(dāng)選擇TreeView控件中的節(jié)點時發(fā)生控件中的節(jié)點時發(fā)生TreeNodeCheckChanged 當(dāng)當(dāng)TreeView控件中的復(fù)選框在向服務(wù)器的兩次發(fā)送過程之控件中的復(fù)選框在向服務(wù)器的兩次發(fā)送過程之間狀態(tài)有所更改時發(fā)生。間狀態(tài)有所更改時發(fā)生。 Tre
20、eNodeCollapsed 當(dāng)折疊當(dāng)折疊TreeView控件中的節(jié)點時發(fā)生控件中的節(jié)點時發(fā)生TreeNodeDataBound 當(dāng)數(shù)據(jù)項綁定到當(dāng)數(shù)據(jù)項綁定到TreeView控件中的節(jié)點時發(fā)生控件中的節(jié)點時發(fā)生TreeNodeExpanded 當(dāng)擴展當(dāng)擴展TreeView控件中的節(jié)點時發(fā)生控件中的節(jié)點時發(fā)生TreeNodePopulate 當(dāng)其當(dāng)其PopulateOnDemand屬性設(shè)置為屬性設(shè)置為true的節(jié)點在的節(jié)點在TreeView控件中展開時發(fā)生控件中展開時發(fā)生7.3.3 TreeNodeCollection類類 TreeView控件中所有節(jié)點構(gòu)成一個控件中所有節(jié)點構(gòu)成一個TreeNo
21、deCollection類對象,也就是說,類對象,也就是說,TreeView控件的控件的Nodes屬性就是一個屬性就是一個TreeNodeCollection類對象。類對象。 屬性屬性說明說明Count獲取獲取TreeNodeCollection對象中的項數(shù)對象中的項數(shù)Item獲取獲取TreeNodeCollection對象中指定索引處的對象中指定索引處的TreeNode對象對象TreeNodeCollection類的主要方法有類的主要方法有Add、AddAt、Clear、Contains、IndexOf、Remove、RemoveAt。7.3.4 向向TreeView控件中添加節(jié)點的方法控件
22、中添加節(jié)點的方法向向TreeView控件添加節(jié)點有以下幾種方法??丶砑庸?jié)點有以下幾種方法。1. 手工方式添加節(jié)點手工方式添加節(jié)點2. 通過通過DataSourceID屬性置數(shù)據(jù)源控件屬性置數(shù)據(jù)源控件ASP.NET提供了提供了SiteMapDataSource和和XmlDataSource兩個兩個服務(wù)器控件,位于工具箱的服務(wù)器控件,位于工具箱的“數(shù)據(jù)數(shù)據(jù)”選項卡中,用于選項卡中,用于ASP.NET站點導(dǎo)航。站點導(dǎo)航。前者檢索站點地圖提供程序的導(dǎo)航數(shù)據(jù),后者檢索指定的前者檢索站點地圖提供程序的導(dǎo)航數(shù)據(jù),后者檢索指定的XML文件的導(dǎo)航數(shù)據(jù),并將導(dǎo)航數(shù)據(jù)傳遞到可顯示該數(shù)據(jù)的控文件的導(dǎo)航數(shù)據(jù),并將導(dǎo)航
23、數(shù)據(jù)傳遞到可顯示該數(shù)據(jù)的控件(如件(如TreeView和和Menu控件)??丶?. 通過編程方式添加節(jié)點通過編程方式添加節(jié)點由于由于TreeView控件的控件的Nodes屬性是一個屬性是一個TreeNodeCollection類對象,因此采用類對象,因此采用Add方法向其中添加方法向其中添加TreeNode對象。這種方對象。這種方式在可以在運行時動態(tài)地增刪式在可以在運行時動態(tài)地增刪TreeView控件的節(jié)點??丶墓?jié)點。 protected void Page_Load(object sender, EventArgs e)TreeView1.Nodes.Clear(); TreeNode
24、 node = new TreeNode(中華大學(xué)中華大學(xué));TreeView1.Nodes.Add(node);node = new TreeNode(院系設(shè)置院系設(shè)置);TreeView1.Nodes0.ChildNodes.Add(node);node = new TreeNode(計算機學(xué)院計算機學(xué)院);TreeView1.Nodes0.ChildNodes0.ChildNodes.Add(node);node = new TreeNode(電子信息學(xué)院電子信息學(xué)院);TreeView1.Nodes0.ChildNodes0.ChildNodes.Add(node);node = ne
25、w TreeNode(數(shù)學(xué)學(xué)院數(shù)學(xué)學(xué)院);TreeView1.Nodes0.ChildNodes0.ChildNodes.Add(node);node = new TreeNode(物理學(xué)院物理學(xué)院);TreeView1.Nodes0.ChildNodes0.ChildNodes.Add(node);node = new TreeNode(職能部門職能部門);TreeView1.Nodes0.ChildNodes.Add(node);node = new TreeNode(教務(wù)處教務(wù)處);TreeView1.Nodes0.ChildNodes1.ChildNodes.Add(node);nod
26、e = new TreeNode(財務(wù)處財務(wù)處);TreeView1.Nodes0.ChildNodes1.ChildNodes.Add(node);node = new TreeNode(學(xué)生工作處學(xué)生工作處);TreeView1.Nodes0.ChildNodes1.ChildNodes.Add(node);node = new TreeNode(科技處科技處);TreeView1.Nodes0.ChildNodes1.ChildNodes.Add(node);運行結(jié)果運行結(jié)果7.4 Menu控件控件Menu控件又稱為菜單控件,在工具箱中的圖標(biāo)為??丶址Q為菜單控件,在工具箱中的圖標(biāo)為。M
27、enu控件主要用于創(chuàng)建一個菜單,讓用戶快速選擇不同頁控件主要用于創(chuàng)建一個菜單,讓用戶快速選擇不同頁面,從而完成導(dǎo)航功能。其使用方法與面,從而完成導(dǎo)航功能。其使用方法與TreeView控件十分相控件十分相似。似。Menu控件由菜單項(由控件由菜單項(由MenuItem對象表示)樹組成。對象表示)樹組成。頂級(級別頂級(級別0)菜單項稱為根菜單項。具有父菜單項的菜單)菜單項稱為根菜單項。具有父菜單項的菜單項稱為子菜單項。所有根菜單項都存儲在項稱為子菜單項。所有根菜單項都存儲在Items集合中。子菜集合中。子菜單項存儲在父菜單項的單項存儲在父菜單項的ChildItems集合中。集合中。一個一個Men
28、u控件控件7.4.1 MenuItem類類Menu控件中一個菜單項就是一個控件中一個菜單項就是一個MenuItem類對象。類對象。TreeNode類提供了以下構(gòu)造函數(shù):類提供了以下構(gòu)造函數(shù):lpublic MenuItem()lpublic MenuItem (string text)lpublic MenuItem(string text,string value)lpublic MenuItem(string text,string value,string imageUrl)lpublic MenuItem(string text,string value,string imageUrl
29、,string navigateUrl)lpublic MenuItem(string text,string value,string imageUrl,string navigateUrl,string target)ChildItems 獲取該對象包含當(dāng)前菜單項的子菜單項獲取該對象包含當(dāng)前菜單項的子菜單項DataItem 獲取綁定到菜單項的數(shù)據(jù)項獲取綁定到菜單項的數(shù)據(jù)項DataPath 獲取綁定到菜單項的數(shù)據(jù)的路徑獲取綁定到菜單項的數(shù)據(jù)的路徑Depth 獲取菜單項的顯示級別獲取菜單項的顯示級別ImageUrl 獲取或設(shè)置顯示在菜單項文本旁邊的圖像的獲取或設(shè)置顯示在菜單項文本旁邊的圖像的U
30、RLNavigateUrl 獲取或設(shè)置單擊菜單項時要導(dǎo)航到的獲取或設(shè)置單擊菜單項時要導(dǎo)航到的URLParent 獲取當(dāng)前菜單項的父菜單項獲取當(dāng)前菜單項的父菜單項Selectable 獲取或設(shè)置一個值,該值指示獲取或設(shè)置一個值,該值指示MenuItem對象是否可選或?qū)ο笫欠窨蛇x或“可可單擊單擊”Selected 獲取或設(shè)置一個值,該值指示獲取或設(shè)置一個值,該值指示Menu控件的當(dāng)前菜單項是否已控件的當(dāng)前菜單項是否已被選中被選中Target 獲取或設(shè)置用來顯示菜單項的關(guān)聯(lián)網(wǎng)頁內(nèi)容的目標(biāo)窗口或框架獲取或設(shè)置用來顯示菜單項的關(guān)聯(lián)網(wǎng)頁內(nèi)容的目標(biāo)窗口或框架Text 獲取或設(shè)置獲取或設(shè)置Menu控件中顯示的
31、菜單項文本控件中顯示的菜單項文本ToolTip 獲取或設(shè)置菜單項的工具提示文本獲取或設(shè)置菜單項的工具提示文本Value 獲取或設(shè)置一個非顯示值,該值用于存儲菜單項的任何其他數(shù)獲取或設(shè)置一個非顯示值,該值用于存儲菜單項的任何其他數(shù)據(jù),如用于處理回發(fā)事件的數(shù)據(jù)據(jù),如用于處理回發(fā)事件的數(shù)據(jù)表表7.8 MenuItem類的常用屬性及其說明類的常用屬性及其說明7.4.2 Menu控件的屬性和事件控件的屬性和事件屬性屬性說明說明DataSourceID設(shè)置數(shù)據(jù)源對象設(shè)置數(shù)據(jù)源對象DisappearAfter獲取或設(shè)置鼠標(biāo)指針不再置于菜單上后顯示動態(tài)菜單的持續(xù)時間獲取或設(shè)置鼠標(biāo)指針不再置于菜單上后顯示動態(tài)菜
32、單的持續(xù)時間Items獲取獲取MenuItemCollection對象,該對象包含對象,該對象包含Menu控件中的所有菜單控件中的所有菜單項項ItemWrap 獲取或設(shè)置一個值,該值指示菜單項的文本是否換行獲取或設(shè)置一個值,該值指示菜單項的文本是否換行Orientation獲取或設(shè)置獲取或設(shè)置Menu控件的呈現(xiàn)方向控件的呈現(xiàn)方向PathSeparator獲取或設(shè)置用于分隔獲取或設(shè)置用于分隔Menu控件的菜單項路徑的字符控件的菜單項路徑的字符SelectedItem獲取選定的菜單項獲取選定的菜單項SelectedValue獲取選定菜單項的值獲取選定菜單項的值StaticDisplayLevels
33、獲取或設(shè)置靜態(tài)菜單的菜單顯示級別數(shù)獲取或設(shè)置靜態(tài)菜單的菜單顯示級別數(shù)Target 獲取或設(shè)置用來顯示菜單項的關(guān)聯(lián)網(wǎng)頁內(nèi)容的目標(biāo)窗口或框架獲取或設(shè)置用來顯示菜單項的關(guān)聯(lián)網(wǎng)頁內(nèi)容的目標(biāo)窗口或框架1. Menu控件的屬性控件的屬性(1)DataSourceID屬性屬性該屬性指定該屬性指定Menu控件的數(shù)據(jù)源控件的控件的數(shù)據(jù)源控件的ID屬性。例如,可屬性。例如,可以指定與以指定與XML文件綁定的文件綁定的XmlDataSource控件或與站點地圖控件或與站點地圖綁定的綁定的SiteDataSource控件的控件的ID。(2)Items屬性屬性Items屬性是屬性是Menu控件中所有菜單項的集合,一個菜
34、單控件中所有菜單項的集合,一個菜單項是一個項是一個MenuItem對象??梢酝ㄟ^索引來表示對象??梢酝ㄟ^索引來表示Items集合中集合中的元素(索引從零開始),例如:的元素(索引從零開始),例如:lMenu1.Items表示表示Menu1控件的所有菜單項集合。控件的所有菜單項集合。lMenu1.Items0表示表示Menu1控件中第一個菜單項??丶械谝粋€菜單項。lMenu1.Items0.ChildItems表示表示Menu1控件中第一個菜單項控件中第一個菜單項的子菜單項集合。的子菜單項集合。lMenu1.Item0.ChildItems1表示表示Menu1控件中第一個菜單項控件中第一個菜單
35、項的第的第2個子菜單項。個子菜單項。(3)Orientation屬性屬性該屬性取或設(shè)置該屬性取或設(shè)置Menu控件的呈現(xiàn)方向,可取控件的呈現(xiàn)方向,可取Horizontal(表示水平呈現(xiàn)(表示水平呈現(xiàn)Menu控件,如左圖所示)或控件,如左圖所示)或Vertical(表示垂直呈現(xiàn)(表示垂直呈現(xiàn)Menu控件,如右圖所示)??丶?,如右圖所示)。(4)Target屬性屬性該屬性獲取或設(shè)置用來顯示菜單項的關(guān)聯(lián)網(wǎng)頁內(nèi)容的目該屬性獲取或設(shè)置用來顯示菜單項的關(guān)聯(lián)網(wǎng)頁內(nèi)容的目標(biāo)窗口或框架。標(biāo)窗口或框架。Target屬性影響控件中的所有菜單項。若要為單個菜單屬性影響控件中的所有菜單項。若要為單個菜單項指定一個窗口或框
36、架,直接設(shè)置項指定一個窗口或框架,直接設(shè)置MenuItem對象的對象的Target屬屬性。性。2. Menu控件的事件控件的事件事件事件說明說明MenuItemClick 單擊菜單項時發(fā)生。此事件通常用于將頁上的一個單擊菜單項時發(fā)生。此事件通常用于將頁上的一個Menu控件與另一個控件進行同步控件與另一個控件進行同步MenuItemDataBound 當(dāng)菜單項綁定到數(shù)據(jù)時發(fā)生。此事件通常用來在菜單當(dāng)菜單項綁定到數(shù)據(jù)時發(fā)生。此事件通常用來在菜單項呈現(xiàn)在項呈現(xiàn)在Menu控件中之前對菜單項進行修改控件中之前對菜單項進行修改7.4.3 MenuItemCollection類類Menu控件中所有菜單項構(gòu)成
37、一個控件中所有菜單項構(gòu)成一個MenuItemCollection類對象,類對象,即即Menu控件的控件的Items屬性就是一個屬性就是一個MenuItemCollection類對象。類對象。 屬性屬性 說明說明 Count 獲取當(dāng)前獲取當(dāng)前MenuItemCollection對象所含菜單項的數(shù)目對象所含菜單項的數(shù)目Item 獲取當(dāng)前獲取當(dāng)前MenuItemCollection對象中指定索引處的對象中指定索引處的MenuItem對象對象MenuItemCollection類的主要方法如下。類的主要方法如下。(1)Add方法方法該方法用于向該方法用于向MenuItemCollection對象中添加
38、一個對象中添加一個MenuItem對象。其使用格式如下:對象。其使用格式如下:public void Add (MenuItem child)其中,參數(shù)其中,參數(shù)child指出要添加的指出要添加的MenuItem對象。對象。(2)AddAt方法方法該方法用于向該方法用于向MenuItemCollection對象中指定位置添加對象中指定位置添加一個一個MenuItem對象。其使用格式如下:對象。其使用格式如下:public void AddAt (int index,MenuItem child)其中,參數(shù)其中,參數(shù)index指出將在該處插入指出將在該處插入MenuItem對象的從零開對象的從零
39、開始的索引位置。始的索引位置。child指出要添加的指出要添加的MenuItem對象。對象。(3)Clear方法方法該方法用于從該方法用于從MenuItemCollection對象中移除所有對象中移除所有MenuItem對象。其使用格式如下:對象。其使用格式如下:public void Clear ()(4)Contains方法方法該方法指出該方法指出MenuItemCollection對象中是否包含指定的對象中是否包含指定的MenuItem對象。其使用格式如下:對象。其使用格式如下:public bool Contains (MenuItem c)其中,參數(shù)其中,參數(shù)c指出要查找的指出要查找
40、的MenuItem對象。如果指定的對象。如果指定的MenuItem對象包含在對象包含在MenuItemCollection對象中,則返回值對象中,則返回值為為true;否則返回值為;否則返回值為false。(5)IndexOf方法方法該方法查找指定的該方法查找指定的MenuItem對象在對象在MenuItemCollection對象中的位置。其使用格式如下:對象中的位置。其使用格式如下:public int IndexOf (MenuItem value)其中,參數(shù)其中,參數(shù)value指出要定位的指出要定位的MenuItem對象。如果找到對象。如果找到MenuItemCollection中中v
41、alue的第一個匹配項的從零開始的索的第一個匹配項的從零開始的索引,則為該索引;否則為引,則為該索引;否則為-1。(6)Remove方法方法該方法從該方法從MenuItemCollection對象中刪除指定的對象中刪除指定的MenuItem對象。其使用格式如下:對象。其使用格式如下:public void Remove(MenuItem value)其中,參數(shù)其中,參數(shù)value指出要移除的指出要移除的MenuItem對象。對象。使用使用Remove方法可從集合中移除指定的節(jié)點。然后跟在該節(jié)方法可從集合中移除指定的節(jié)點。然后跟在該節(jié)點之后的所有項都將上移以填充空白位置,同時還會更新所移點之后的
42、所有項都將上移以填充空白位置,同時還會更新所移動的項的索引。動的項的索引。(7)RemoveAt方法方法該方法從該方法從MenuItemCollection對象中刪除指定位置處的對象中刪除指定位置處的MenuItem對象。其使用格式如下:對象。其使用格式如下:public void RemoveAt(int index)其中,參數(shù)其中,參數(shù)index指出要移除的節(jié)點的從零開始的索引位置。指出要移除的節(jié)點的從零開始的索引位置。使用使用RemoveAt方法從方法從MenuItemCollection中的指定的從零開中的指定的從零開始的索引位置移除始的索引位置移除MenuItem對象。然后跟在該節(jié)點
43、之后的所對象。然后跟在該節(jié)點之后的所有項都將上移以填充空白位置。同時還會更新所移動的項的索有項都將上移以填充空白位置。同時還會更新所移動的項的索引。引。7.4.4 向向Menu控件中添加菜單項的方法控件中添加菜單項的方法向向Menu控件添加菜單項有以下幾種方法??丶砑硬藛雾椨幸韵聨追N方法。1. 手工方式添加節(jié)點手工方式添加節(jié)點2. 通過通過DataSourceID屬性置數(shù)據(jù)源控件屬性置數(shù)據(jù)源控件3. 通過編程方式添加節(jié)點通過編程方式添加節(jié)點【例【例7.3】 創(chuàng)建一個創(chuàng)建一個WebForm7-2網(wǎng)頁,采用編程方式網(wǎng)頁,采用編程方式通過通過Menu控件顯示前面所列的大學(xué)網(wǎng)站層次結(jié)構(gòu)??丶@示前面
44、所列的大學(xué)網(wǎng)站層次結(jié)構(gòu)。解:解:其設(shè)計步驟如下:其設(shè)計步驟如下: 在在Myaspnet網(wǎng)站的網(wǎng)站的ch7文件夾中添加一個名稱為文件夾中添加一個名稱為WebForm7-2的空網(wǎng)頁。的空網(wǎng)頁。 其設(shè)計界面如圖其設(shè)計界面如圖7.11所示,其中只包含一個所示,其中只包含一個Menu控件控件Menu1。在該網(wǎng)頁上設(shè)計如下事件過程:。在該網(wǎng)頁上設(shè)計如下事件過程:protected void Page_Load(object sender, EventArgs e)Menu1.Orientation = Orientation.Horizontal;Menu1.StaticDisplayLevels = 2
45、; /靜態(tài)顯示兩層靜態(tài)顯示兩層Menu1.Items.Clear();MenuItem node = new MenuItem(中華大學(xué)中華大學(xué));Menu1.Items.Add(node);node = new MenuItem(院系設(shè)置院系設(shè)置);Menu1.Items0.ChildItems.Add(node);node = new MenuItem(計算機學(xué)院計算機學(xué)院);Menu1.Items0.ChildItems0.ChildItems.Add(node);node = new MenuItem(電子信息學(xué)院電子信息學(xué)院);Menu1.Items0.ChildItems0.Chi
46、ldItems.Add(node);node = new MenuItem(數(shù)學(xué)學(xué)院數(shù)學(xué)學(xué)院);Menu1.Items0.ChildItems0.ChildItems.Add(node);node = new MenuItem(物理學(xué)院物理學(xué)院);Menu1.Items0.ChildItems0.ChildItems.Add(node);node = new MenuItem(職能部門職能部門);Menu1.Items0.ChildItems.Add(node);node = new MenuItem(教務(wù)處教務(wù)處);Menu1.Items0.ChildItems1.ChildItems.Ad
47、d(node);node = new MenuItem(財務(wù)處財務(wù)處);Menu1.Items0.ChildItems1.ChildItems.Add(node);node = new MenuItem(學(xué)生工作處學(xué)生工作處);Menu1.Items0.ChildItems1.ChildItems.Add(node);node = new MenuItem(科技處科技處);Menu1.Items0.ChildItems1.ChildItems.Add(node);單擊工具欄中的單擊工具欄中的按鈕運行本網(wǎng)頁,將鼠標(biāo)指針移動到按鈕運行本網(wǎng)頁,將鼠標(biāo)指針移動到“院系設(shè)置院系設(shè)置”上,其結(jié)果如圖上,其結(jié)果如圖7.12所示。所示。7.5 SiteMapPath控件控件SiteMapPath控件會顯示一個導(dǎo)航路徑(也稱為當(dāng)前位控件會顯示一個導(dǎo)航路徑(也稱為當(dāng)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 秋游活動總結(jié)
- 新教材高考地理二輪復(fù)習(xí)一8類識圖技法專項訓(xùn)練技法7統(tǒng)計圖判讀含答案
- 新普惠自動氣象站通訊協(xié)議
- 第二十六章 二次函數(shù)(15類題型突破)
- 第二十五章 圖形的相似 綜合檢測
- 天津市和平區(qū)2024-2025學(xué)年高一上學(xué)期11月期中英語試題(含答案含聽力原文無音頻)
- 山西省榆社中學(xué)2024-2025學(xué)年高二上學(xué)期11月期中英語試題(含答案無聽力原文及音頻)
- 江西省上饒市新知學(xué)校2024-2025學(xué)年高二上學(xué)期十一月化學(xué)月考卷(含答案)
- 青海省海東市互助縣2023-2024學(xué)年九年級上學(xué)期期中教育質(zhì)量檢測英語試題
- 2024年六年級英語秋季學(xué)期期中質(zhì)量監(jiān)測試題
- 教科版三年級科學(xué)上冊《第1單元第1課時 水到哪里去了》教學(xué)課件
- 國際貿(mào)易術(shù)語2020
- 國網(wǎng)新安規(guī)培訓(xùn)考試題及答案
- 第六單元測試卷-2024-2025學(xué)年統(tǒng)編版語文三年級上冊
- 【課件】Unit4+Section+B+(Project)課件人教版(2024)七年級英語上冊
- 青少年法治教育實踐基地建設(shè)活動實施方案
- 綠化養(yǎng)護續(xù)簽合同申請書范文
- 教科(2024秋)版科學(xué)三年級上冊2.6 我們來做“熱氣球”教學(xué)設(shè)計
- 追要工程款居間合同范本2024年
- 2024至2030年中國氮化硅軸承球行業(yè)市場全景調(diào)查及投資前景分析報告
- 三年級上《時分秒》教材解讀
評論
0/150
提交評論