以前一直以為菜單都是通過sitemap製作的,最近看到項目中的方法是使用XmlDataSource榜定的。
Menusite.xlm檔案:
複製代碼 代碼如下:<?xmlversion="1.0"encoding="utf-8"?>
<Menusvalue="">
<TopMenuid="100"value=""ImageUrl="~/App_Themes/Public/images/PublicImages/topMenu_stl.jpg"NavigateUrl="">
<TopMenuItemid="101"value="ApplyforShortTermLeaseofStateLand"NavigateUrl="~/TOL/Issuance/AppTOLApplication.aspx"></TopMenuItem>
<TopMenuItemid="102"value="ManageMyExistingAccount"NavigateUrl="~/CaseEnquiry/HomeAuthenticate.aspx?ShowPanel=true"></TopMenuItem>
<TopMenuItemid="103"value="ViewMessagesforMyApplications"NavigateUrl="~/CommonUtility/Email/ListAppCorrespondence.aspx"></TopMenuItem>
</TopMenu>
<TopMenuid="200"value=""ImageUrl="~/App_Themes/Public/images/PublicImages/topMenu_aosl.jpg"NavigateUrl="">
<TopMenuItemid="202"value="ManageMyExistingStateTitle"NavigateUrl=""></TopMenuItem>
<TopMenuItemid="203"value="ViewMessagesforMyApplications"NavigateUrl=""></TopMenuItem>
</TopMenu>
<TopMenuid="300"value=""ImageUrl="~/App_Themes/Public/images/PublicImages/topMenu_lup.jpg"NavigateUrl="">
<TopMenuItemid="301"value="SubmitProposalforLandUse"NavigateUrl=""></TopMenuItem>
</TopMenu>
<TopMenuid="500"value=""ImageUrl="~/App_Themes/Public/images/PublicImages/topMenu_logout.jpg"NavigateUrl="~"Logout.aspx">
</TopMenu>
</Menus>
html中建立xmldatasource和asp:menu控制項: 複製代碼 代碼如下:<asp:XmlDataSourceID="XmlDataSource1"runat="server"DataFile="Menusite.xml"></asp:XmlDataSource>
<asp:MenuDataSourceID="XmlDataSource1"runat="server"ID="Menu1"MaximumDynamicDisplayLevels="4"
Orientation="Horizontal"StaticDisplayLevels="2"StaticEnableDefaultPopOutImage="False"
DynamicEnableDefaultPopOutImage="false"StaticSubMenuIndent=""ItemWrap="True">
<DataBindings>
<asp:MenuItemBindingDataMember="TopMenu"ImageUrlField="ImageUrl"TextField="value"
NavigateUrlField="NavigateUrl"ValueField="value"/>
<asp:MenuItemBindingDataMember="TopMenuItem"NavigateUrlField="NavigateUrl"TextField="value"
ValueField="value"/>
<asp:MenuItemBindingDataMember="Menus"TextField="value"ValueField="value"/>
</DataBindings>
</asp:Menu>
menu的確夠全面,只需要設定屬性就可以滿足你的要求,無需任何代碼:
MaximumDynamicDisplayLevels:指定在靜態顯示層後應顯示的動態顯示菜單節點層數。如果設定為0,子節點將不顯示動態。
Orientation:用於在頁面上設定一個水平菜單條。
StaticDisplayLevels:從根菜單算起,靜態顯示的菜單的層數。上面的小技巧為:xml必須有根節點,但是在菜單顯示的時候要顯示第二層的功能表項目,所以將此
xml的根節點value設為空白,然後設定saticDisplayLeves為2,這樣使用者看到的就是靜態顯示的第二層。
StaticEnableDefaultPopOutImage:靜態功能表項目預設顯示帶有小箭頭,設定為false,將修改這個狀態。
DynamicEnableDefaultPopOutImage:設定動態顯示是否帶有小箭頭。
StaticSubMenuIndent:控制顯示了子功能表條目的縮排深度,如果這些菜單層級被設定為以靜態模式顯示。
ItemWrap:設定功能表項目是否可以換行。
通過上面的設定可以輕鬆的製作出想要的menu的樣式。