Search code examples
c#javascriptjqueryasp.netaspmenu

How to display some stuff in the same page instead of redirecting to another page while clicking the submenu of asp:menu?


I am using asp:menu. My aspx code is:

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

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

I am generating the sub menu items (i.e) the childitems dynamically.. If i click the sub menu items it redirects me to a page which i specify like this in my code behind,

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

But what i need is when i click on sub menu items, it should display some items in same page..

How to achieve this? Please help me.. It can be either in javascript or code behind.. I don't want it to navigate it to another page instead perform the action in same page..


Solution

  • Instead of using the Page link you can use javascript for that and any div you can show or hide in it.

    Your Code:

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

    Change with:

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

    Javascript function:

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