ASP.NET中的Menu控件的应用及XmlDataSource的了解 |
以前一直以为菜单都是通过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的样式 。 |