ASP.NETMenu控制項

ASP.NETMenu控制項

利用 ASP.NET Menu 控制項,可以開發ASP.NET 網頁的靜態和動態顯示選單。Menu 控制項具有兩種顯示模式:靜態模式和動態模式。靜態顯示意味著 Menu 控制項始終是完全展開的。整個結構都是可視的,用戶可以單擊任何部位。在動態顯示的選單中,只有指定的部分是靜態的,而只有用戶將滑鼠指針放置在父節點上時才會顯示其子選單項。

基本介紹

  • 中文名: ASP.NET Menu 控制項
  • 作用:開發靜態和動態顯示選單
  • 顯示模式靜態模式和動態模式
  • 特點:整個結構都是可視的
簡介,靜態顯示行為,動態顯示行為,定義選單內容,手動添加選單項,外觀和行為,樣式,控制項,動態外觀計時,

簡介

您可以在 Menu 控制項中直接配置其內容,也可通過將該控制項綁定到數據源的方式來指定其內容。無需編寫任何代碼,便可控制 ASP.NET Menu 控制項的外觀、方向和內容。除該控制項公開的可視屬性外,該控制項還支持 ASP.NET 控制項外觀和主題。

靜態顯示行為

使用 Menu 控制項的 StaticDisplayLevels 屬性可控制靜態顯示行為。StaticDisplayLevels 屬性指示從根選單算起,靜態顯示的選單的層數。例如,如果將 StaticDisplayLevels 設定為 3,選單將以靜態顯示的方式展開其前三層。靜態顯示的最小層數為 1,如果將該值設定為 0 或負數,該控制項將會引發異常。

動態顯示行為

MaximumDynamicDisplayLevels 屬性指定在靜態顯示層後應顯示的動態顯示選單節點層數。例如,如果選單有 3 個靜態層和 2 個動態層,則選單的前三層靜態顯示,後兩層動態顯示。
如果將 MaximumDynamicDisplayLevels 設定為 0,則不會動態顯示任何選單節點。如果將 MaximumDynamicDisplayLevels 設定為負數,則會引發異常。

定義選單內容

您可以通過兩種方式來定義 Menu 控制項的內容:添加單個 MenuItem 對象(以聲明方式或編程方式);用數據綁定的方法將該控制項綁定到 XML 數據源

手動添加選單項

您可以通過在 Items 屬性中指定選單項的方式向控制項添加單個選單項。Items 屬性是 MenuItem 對象的集合。下面的示例演示 Menu 控制項的聲明性標記,該控制項有三個選單項,每個選單項有兩個子項:
<asp:Menu ID="Menu1" runat="server" StaticDisplayLevels="3"> <Items> <asp:MenuItem Text="File" Value="File"> <asp:MenuItem Text="New" Value="New"></asp:MenuItem> <asp:MenuItem Text="Open" Value="Open"></asp:MenuItem> </asp:MenuItem> <asp:MenuItem Text="Edit" Value="Edit"> <asp:MenuItem Text="Copy" Value="Copy"></asp:MenuItem> <asp:MenuItem Text="Paste" Value="Paste"></asp:MenuItem> </asp:MenuItem> <asp:MenuItem Text="View" Value="View"> <asp:MenuItem Text="Normal" Value="Normal"></asp:MenuItem> <asp:MenuItem Text="Preview" Value="Preview"></asp:MenuItem> </asp:MenuItem> </wikis></asp:Menu>
用數據綁定的方法將控制項綁定到 XML 數據源
利用這種將控制項綁定到 XML 檔案的方法,可以通過編輯此檔案來控制選單的內容,而不需要使用設計器。這樣就可以在不重新訪問 Menu 控制項或編輯任何代碼的情況下,更新站點的導航內容。如果站點內容有變化,便可使用 XML 檔案來組織內容,再提供給 Menu 控制項,以確保網站用戶可以訪問這些內容。

外觀和行為

可通過 Menu 控制項的屬性來調整該控制項的行為。此外,您還可以控制動態顯示行為,包括選單節點持續顯示的時間長度。例如,若要將 Menu 的方向從水平更改為垂直,則可按以下所述來設定 Orientation 屬性:
[C#]
Menu.Orientation = Orientation.Vertical;
將該屬性設定為 Orientation.Horizontal,便可將選單方向恢復為水平。
可以逐個設定 Menu 控制項的屬性來指定其外觀的大小、顏色、字型和其他特性。此外,還可以對 Menu 控制項套用外觀和主題。

樣式

每個選單層都支持樣式屬性。如果沒有設定動態樣式屬性,則使用靜態樣式屬性。如果設定了動態樣式屬性,而沒有設定靜態樣式屬性,則使用默認的靜態樣式屬性進行呈現。Menu 控制項樣式的層次結構如下所示:

控制項

SubMenuStyles
MenuItemStyles
SelectedItemStyles
HoverMenuItemStyles
使用下面的邏輯可跨動態和靜態選單合併這些樣式:
各種樣式分別被套用至適當的操作或項類型。
所有樣式都被合併到層次結構中優先於這些樣式的樣式中,並重寫最後的樣式。
永遠不會合併靜態選單;如果沒有定義靜態樣式,則套用動態樣式。

動態外觀計時

設計動態選單時需要注意的一個方面便是選單動態顯示部分從顯示到消失所需的時間長度。按以下方式調整 DisappearAfter 屬性,可以按毫秒配置此值:
[C#]
Menu.DisappearAfter = 1000;
默認值為 500 毫秒。如果將 DisappearAfter 的值設定為 0,在 Menu 控制項之外暫停便會使其立即消失。將此值設定為 -1 指示暫停時間無限長,只有在 Menu 控制項之外單擊,才會使動態部分消失。
將 Menu 控制項與 UpdatePanel 控制項一起使用
UpdatePanel 控制項用於通過回發更新頁面的選定區域,而不是更新整個頁面。Menu 控制項可以在 UpdatePanel 控制項內使用,限制條件是必須使用對級聯樣式表 (CSS) 類的引用來套用樣式。例如,使用屬性-CssClass(其中屬性指 Property)屬性 (Attribute) 來設定樣式,而不是使用屬性-子屬性(其中屬性指 Property)屬性 (Attribute) 設定 DynamicHoverStyle 屬性 (Property)。同樣,在使用 DynamicHoverStyle 模板設定樣式時,請使用該模板的 CssClass 屬性 (Attribute)。
下面列出了與 Menu 控制項相關的類
Menu
控制項的主類。
MenuEventArgs
為 Menu 控制項的 MenuItemClick 和 MenuItemDataBound 事件提供數據。
MenuEventHander
表示處理 Menu 控制項的 MenuItemClick 事件或 MenuItemDataBound 事件的方法。
MenuItem
表示一個在 Menu 控制項中顯示的選單項。
MenuItemBinding
定義一個數據項與 Menu 控制項中該數據項綁定到的選單項之間的關係。
MenuItemBindingCollection
表示 MenuItemBinding 對象的集合。
MenuItemCollection
表示 Menu 控制項中選單項的集合。
MenuItemStyle
表示 Menu 控制項中選單項的樣式。
MenuItemStyleCollection
表示 Menu 控制項中 MenuItemStyle 對象的集合。

相關詞條

熱門詞條

聯絡我們