【发布时间】:2011-12-08 19:36:54
【问题描述】:
有没有办法使用 JSON 对象或 XML 数据为 Asp.Net Web 应用程序获取动态菜单?
【问题讨论】:
标签: asp.net json drop-down-menu webmethod
有没有办法使用 JSON 对象或 XML 数据为 Asp.Net Web 应用程序获取动态菜单?
【问题讨论】:
标签: asp.net json drop-down-menu webmethod
是的,为什么不呢。将asp.net菜单的datasource设置为来自source的xml。
让我们通过几个步骤来创建这个菜单。
在 Web 应用程序中添加一个名为 menu.xml 的 XML 文件。 Xml代码如下
<?xml version="1.0" encoding="utf-8" ?>
<HomePage>
<Menu text="Issue1" url="Issue1.aspx">
<SubMenu text="Concept1" url="Concept1.aspx"></SubMenu>
<SubMenu text="Concept2" url="Concept2.aspx"></SubMenu>
<SubMenu text="Concept3" url="Concept3.aspx"></SubMenu>
</Menu>
<Menu text="Issue2" url="Issue2.aspx">
<SubMenu text="Problem1" url="Problem1.aspx"></SubMenu>
<SubMenu text="Problem2" url="Problem2.aspx"></SubMenu>
<SubMenu text="Problem3" url="Problem3.aspx"></SubMenu>
</Menu>
</HomePage>
从工具箱的“数据”选项卡将 XMLDataSource 控件添加到页面。
将 DataSourceID 链接为 Menu 控件的 XmlDataSource1,将 menu.xml 链接为 XmlDataSource 控件的 DataFile 并绑定菜单控件。
菜单控件的代码是
<asp:Menu ID="dymenu1" runat="server" DataSourceID="xmlsource1" Orientation="Horizontal">
<DynamicMenuStyle BackColor="#228B22" />
<StaticSelectedStyle BackColor="#FFBB77" />
<DynamicSelectedStyle BackColor="#FFAA99" />
<DynamicMenuItemStyle HorizontalPadding="5px" VerticalPadding="2px" />
<StaticHoverStyle BackColor="#abcdaa" Font-Bold="False" ForeColor="White" />
</asp:Menu>
XmlDataSource 的代码是
<asp:XmlDataSource ID="XmlDataSource1" runat="server" DataFile="~/menu.xml"></asp:XmlDataSource>
这里我用的是XML文件,你也可以用动态xml代替静态xml。
【讨论】:
在 ASPX 正文标记中写入以下内容
<asp:Menu ID="menu1" runat="server" DataSourceID="source1" Orientation="Horizontal">
<DynamicMenuStyle BackColor="#228B22" />
<StaticSelectedStyle BackColor="#FFBB77" />
<DynamicSelectedStyle BackColor="#FFAA99" />
<DynamicMenuItemStyle HorizontalPadding="5px" VerticalPadding="2px" />
<StaticHoverStyle BackColor="#abcdaa" Font-Bold="False" ForeColor="White" />
</asp:Menu>
<asp:XmlDataSource ID="source1" runat="server" DataFile="~/menu.xml"></asp:XmlDataSource>
然后运行....
【讨论】: