asp.net中menu控件的使用

   以前一直以为菜单都是通过sitemap制作的,最近看到项目中的方法是使用XmlDataSource榜定的。

   Menusite.xlm文件:

<?xml version="1.0" encoding="utf-8" ?>
<Menus value="">
    <TopMenu id="100" value ="" ImageUrl="~/App_Themes/Public/images/PublicImages/topMenu_stl.jpg"  NavigateUrl="" >
        <TopMenuItem id="101" value="Apply for Short Term Lease of State Land" NavigateUrl="~/TOL/Issuance/AppTOLApplication.aspx"></TopMenuItem>
        <TopMenuItem id="102" value="Manage My Existing Account" NavigateUrl="~/CaseEnquiry/HomeAuthenticate.aspx?ShowPanel=true"></TopMenuItem>
        <TopMenuItem id="103" value="View Messages for My Applications" NavigateUrl="~/CommonUtility/Email/ListAppCorrespondence.aspx"></TopMenuItem>
    </TopMenu>
    <TopMenu id="200" value ="" ImageUrl="~/App_Themes/Public/images/PublicImages/topMenu_aosl.jpg" NavigateUrl="" >
        <TopMenuItem id="202" value="Manage My Existing State Title" NavigateUrl=""></TopMenuItem>
        <TopMenuItem id="203" value="View Messages for My Applications" NavigateUrl=""></TopMenuItem>
    </TopMenu>
    <TopMenu id="300" value ="" ImageUrl="~/App_Themes/Public/images/PublicImages/topMenu_lup.jpg" NavigateUrl="">
        <TopMenuItem id="301" value="Submit Proposal for Land Use" NavigateUrl=""></TopMenuItem>
    </TopMenu>
    <TopMenu id="500" value ="" ImageUrl="~/App_Themes/Public/images/PublicImages/topMenu_logout.jpg"  NavigateUrl="~"Logout.aspx" >
    </TopMenu>

</Menus>

   html中创建xmldatasource和asp:menu控件:

    <asp:XmlDataSource ID="XmlDataSource1" runat="server" DataFile="Menusite.xml"></asp:XmlDataSource>
        <asp:Menu DataSourceID="XmlDataSource1" runat="server" ID="Menu1" MaximumDynamicDisplayLevels="4"
                                    Orientation="Horizontal" StaticDisplayLevels="2" StaticEnableDefaultPopOutImage="False"
                                    DynamicEnableDefaultPopOutImage="false" StaticSubMenuIndent="" ItemWrap="True">
           <DataBindings>
               <asp:MenuItemBinding DataMember="TopMenu" ImageUrlField="ImageUrl" TextField="value"
                    NavigateUrlField="NavigateUrl" ValueField="value" />
               <asp:MenuItemBinding DataMember="TopMenuItem" NavigateUrlField="NavigateUrl" TextField="value"
                    ValueField="value" />
               <asp:MenuItemBinding DataMember="Menus" TextField="value" ValueField="value" />
           </DataBindings>

        </asp:Menu>

   menu的确够全面,只需要设置属性就可以满足你的要求,无需任何代码:

          MaximumDynamicDisplayLevels:指定在静态显示层后应显示的动态显示菜单节点层数。如果设置为0,子节点将不显示动态。

          Orientation:用于在页面上设置一个水平菜单条。

          StaticDisplayLevels:从根菜单算起,静态显示的菜单的层数。上面的小技巧为:xml必须有根节点,但是在菜单显示的时候要显示第二层的菜单项,所以将此

                                      xml的根节点value设为空,然后设置saticDisplayLeves为2,这样用户看到的就是静态显示的第二层。

          StaticEnableDefaultPopOutImage:静态菜单项默认显示带有小箭头,设置为false,将修改这个状态。

           DynamicEnableDefaultPopOutImage:设置动态显示是否带有小箭头。

          StaticSubMenuIndent:控制显示了子菜单条目的缩进深度,如果这些菜单层级被设置为以静态模式显示。

          ItemWrap:设置菜单项是否可以换行。

  通过上面的设置可以轻松的制作出想要的menu的样式。

 

 

 

 

posted @   want  阅读(15252)  评论(1编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示