ASP.NET中的Menu控件的應(yīng)用及XmlDataSource的了解
2024-07-10 12:40:59
供稿:網(wǎng)友
以前一直以為菜單都是通過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中創(chuàng)建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的確夠全面,只需要設(shè)置屬性就可以滿足你的要求,無需任何代碼:
MaximumDynamicDisplayLevels:指定在靜態(tài)顯示層后應(yīng)顯示的動態(tài)顯示菜單節(jié)點層數(shù)。如果設(shè)置為0,子節(jié)點將不顯示動態(tài)。
Orientation:用于在頁面上設(shè)置一個水平菜單條。
StaticDisplayLevels:從根菜單算起,靜態(tài)顯示的菜單的層數(shù)。上面的小技巧為:xml必須有根節(jié)點,但是在菜單顯示的時候要顯示第二層的菜單項,所以將此
xml的根節(jié)點value設(shè)為空,然后設(shè)置saticDisplayLeves為2,這樣用戶看到的就是靜態(tài)顯示的第二層。