Articles in this section
Category / Section

How to load ajax content on clicking the list item in the Navigation drawer?

1 min read

Loading ajax content on click in Navigation drawer

When the list is clicked on the Navigation drawer, Dynamic content can be loaded into a page by Ajax post. The click event can be handled by using the listview touchend event. Refer to the following code example.

HTML

@Html.EJ().Button("button").Text("OpenDrawer")
@Html.EJ().NavigationDrawer("navpane").TargetId("button").Direction(NavigationDrawerDirection.Left).Type(NavigationDrawerType.Overlay).EnableListView(true).ListViewSettings(settings =>
{
    settings.Width(300).ShowHeader(false).ClientSideEvents(events => { events.MouseDown("navListClick"); }).PersistSelection(true);
}).ContentTemplate(@<ul>
        <li data-ej-text="Essential Chart"></li>
        <li data-ej-text="Essential Grid"></li>
        <li data-ej-text="Essential Tools"></li>
        <li data-ej-text="Essential Schedule"></li>
    </ul>)

When the list item is clicked, you can perform the Ajax post action as in the following code example.

Script

<script>

    function navListClick(args) {

        $.ajax({

            url: "/Listview/GetContent",

            type: 'POST',

            data: { text: args.text },

            success: function (response) {

                //Success handler of content loading while list click happens

                $("#render").html(response);

                $("#navpane").ejNavigationDrawer("close")

            },

            error: function (error) {

                alert(error);           

            }

        })

    }</script>

In Controller, to get the appropriate content on clicking the list you need to define a method GetContent. This Ajax post makes a call on the GetContent method along with the text parameter as in the following code examples.

 

Note:

The Partial1, Partial2, Partial3 and Partial4 are the view pages that contain the Ajax content.

 

Controller

public ActionResult GetContent(string text)
        {
           switch (text)
            {
                case "Essential Chart":
                    return PartialView("Partial1");
                case "Essential Grid":
                    return PartialView("Partial2");
                case "Essential Schedule":
                    return PartialView("Partial3");
                default:
                    return PartialView("Partial4");
            }     
      }

Output

Navigation drawer with loaded ajax content

Did you find this information helpful?
Yes
No
Help us improve this page
Please provide feedback or comments
Comments (0)
Please  to leave a comment
Access denied
Access denied