Search code examples
ajaxasp.net-mvcpostjqgrid-asp.net

JqGrid MVC post data is not working


I am trying to pass some values from jQGrid to controller of my MVC application. The grid was displaying properly but no data was showing. My code is below

Ajax

function LoadGrid(varLocationID) {
                var jqDataUrl = null;
                jqDataUrl = "ManageRoutes/ManageRoutes" //+ x;
                var Location = varLocationID.getAttribute('value');
                var  grid = $("#grid").grid({
                   url: "/ManageRoutes/GetRoutes/",
                   postData: { "szLocationID": function () { return Location; } },
                    cache: false,
                    datatype: "json",
                    mtype: "POST",

                    // Specify the column names
                    colNames: ["RouteID", "CompanyID", "LocationID", "SalesManCode", "SalesManName"],
                    // Configure the columns
                    colModel: [
                        { name: "RouteID", index: "RouteID", width: 70, align: "left" },
                        { name: "CompanyID", index: "CompanyID", width: 200, align: "left" },
                        { name: "LocationID", index: "LocationID", width: 200, align: "left" },
                        { name: "SalesManCode", index: "SalesManCode", width: 150, align: "left" },
                        { name: "SalesManName", index: "SalesManName", width: 170, align: "left" }

                    ],
                    pager: { enable: true, limit: 5, sizes: [2, 5, 10, 20] }
                });

and code in controller

[HttpPost]
    public JsonResult GetRoutes(string szLocationID)
    {
        List<RouteNames> qry = new List<RouteNames>();
        using (TESTEntities1 dc = new TESTEntities1())
        {
            qry = (from s in dc.t_hhc_dnl_Route_ID.AsEnumerable()
                   select new RouteNames
                   {
                       CompanyID = s.CompanyID,
                       LocationID = s.LocationID ,
                       RouteID = s.RouteID,
                       SalesManCode=s.SalesManCode ,
                       SalesManName = s.SalesManName 

                   }).Where(m => m.LocationID.Contains(szLocationID)).Take(100).ToList();
        }

        var jsonData = new
        {
            data = from emp in qry select emp
        };

        return Json(jsonData, JsonRequestBehavior.AllowGet);

    }

Any help would be appreciated.


Solution

  • Changed as below code and got worked ..

    "ajax": {
               "url": "/ManageRoutes/GetRoutes",
               "type": "POST",
               "data": function (d) {
                d.szLocationID = Location;
             }