【问题标题】:Asp.Net Dynamic Menu from Json or XML Data来自 Json 或 XML 数据的 Asp.Net 动态菜单
【发布时间】:2011-12-08 19:36:54
【问题描述】:

有没有办法使用 JSON 对象或 XML 数据为 Asp.Net Web 应用程序获取动态菜单?

【问题讨论】:

    标签: asp.net json drop-down-menu webmethod


    【解决方案1】:

    是的,为什么不呢。将asp.net菜单的datasource设置为来自source的xml。

    让我们通过几个步骤来创建这个菜单。

    1. 在 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>

    2. 从工具箱的“数据”选项卡将 XMLDataSource 控件添加到页面。

    3. 将 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。

    【讨论】:

    • 谢谢,有没有从服务而不是文件中读取xml数据的选项?基本上我的服务确实返回xml数据。想根据服务发送的动态XML数据加载菜单,可以吗?
    • 您好,非常感谢,根据您的解释已尝试将 aspx 页面(返回 xml 数据)传递给 Datafile。并使用 XPath 属性。再次非常感谢。
    【解决方案2】:

    在 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>
    

    然后运行....

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-21
      • 1970-01-01
      • 2016-06-12
      • 1970-01-01
      • 2016-04-29
      • 2012-12-18
      • 2011-03-04
      相关资源
      最近更新 更多