ASP.NET中的Menu控件的应用及XmlDataSource的了解
程序员文章站
2024-03-03 22:49:04
以前一直以为菜单都是通过sitemap制作的,最近看到项目中的方法是使用xmldatasource榜定的。 menusite.xlm文件: 复制代码 代码如下: ...
以前一直以为菜单都是通过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的样式。
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的样式。
推荐阅读
-
ASP.NET中的Menu控件的应用及XmlDataSource的了解
-
ASP.NET中控件的EnableViewState属性及彻底禁用
-
ASP.NET中控件的EnableViewState属性及彻底禁用
-
Unity容器在asp.net mvc中的IOC应用及AOP应用
-
Asp.Net Core 中IdentityServer4 授权原理及刷新Token的应用
-
Asp.Net Core 中IdentityServer4 授权原理及刷新Token的应用
-
Asp.Net Core 中IdentityServer4 授权原理及刷新Token的应用
-
Unity容器在asp.net mvc中的IOC应用及AOP应用