如何在单击asp:menu子菜单的同时在同一页面中显示某些内容而不是重定向到另一页面?

时间:2012-12-17 05:37:53

标签: c# javascript jquery asp.net aspmenu

我正在使用asp:menu。我的aspx代码是:

<body>
    <form id="form1" runat="server">
    <div>
        <asp:Menu ID="Menu_Library" runat="server">
        </asp:Menu>

    </div>
    </form>
</body>

我正在动态生成子菜单项(即)子项。如果我单击子菜单项,它会将我重定向到我在后面的代码中指定的页面,

MenuItem childItem = new MenuItem();
childItem.NavigateUrl = "OtherPage.aspx";

但我需要的是当我点击子菜单项时,它应该在同一页面中显示一些项目..

如何实现这一目标?请帮帮我..它可以是javascript或后面的代码..我不希望它导航到另一个页面而是在同一页面中执行操作..

3 个答案:

答案 0 :(得分:1)

您可以使用javascript以及您可以在其中显示或隐藏的任何div,而不是使用Page链接。

您的密码:

MenuItem childItem = new MenuItem();
childItem.NavigateUrl = "OtherPage.aspx";

更改为:

MenuItem childItem = new MenuItem();
childItem.NavigateUrl = "javascript: return GoToSomeLink('"+ count +"');"; //You can pass parameters also

Javascript功能:

<script type="text/javascript">
function GoToSomeLink(obj) //if parameters are used use them here also.
{
    var count=parseInt(obj); //use this count varible anywhere in the function
    $(#menuDiv).show(); /any div show or hide
    return false;

}
 </script>

答案 1 :(得分:0)

您可以使用load()ajax() jquery方法动态加载内容而无需刷新页面。

或者您可以隐藏相关内容并使用toggle()方法

显示/隐藏它们

答案 2 :(得分:0)

您可以使用jquery.load方法,如下所示

var a = this.find(".contentWrap"),
a.load(this.getTrigger().attr("href") + " .ajaxDiv");

这个想法就是这个

  1. 将任何css-class放到要加载另一个页面的每个菜单/子菜单上,说ajaxMenu。
  2. 通过您的代码设置菜单/子菜单的网址。
  3. 使用css-class(conetntWrap)
  4. 在您的mage页面上创建一个容器div
  5. 在您要加载的每个页面上创建一个容器div,说出.ajaxDiv。这很重要,因为它不会将_viewstate加载到您的页面。
  6. 现在在document.ready上编写一个函数,如下所示

    $(document).ready(function () 
    {
        $("a.ajaxMenu").live("click", function (a)
        {
            var a = this.find(".contentWrap"),
            a.load(this.getTrigger().attr("href") + " .ajaxDiv");
         });
     )};
    

    * ---在asp.net *上使用类

    <asp:Menu ID="NavigationMenu" 
         StaticMenuStyle-CssClass="StaticMenuStyle"
         StaticMenuItemStyle-CssClass="StaticMenuItemStyle"
         StaticSelectedStyle-CssClass="StaticSelectedStyle"
         StaticHoverStyle-CssClass="StaticHoverStyle"
        runat="server">
    </asp:Menu>
    

    以上是添加css classe的方法。