2016-05-13 81 views
0

我使用的jqGrid显示,排序和过滤记录。目前,我已经开始使用js代码,但我认为我的控制器代码有问题,那不是填充网格。我只能看到一个空的blak jqgrid,并显示消息“No records to display”。请让我知道最新的错误。
这里是我的代码:
控制器:数据没有得到显示的jqGrid

public JsonResult GetData(string sidx, string sord, int page, int rows) 
    { 
     int pageIndex = Convert.ToInt32(page) - 1; 
     int pagesize = rows; 
     var custList = db.Customers.Select(
            c => new 
            { 
             c.ID, 
             c.Company, 
             c.FirstName, 
             c.EMail, 
             c.Status 
            }); 
     int totalCustomers = custList.Count(); 
     var totalPages = (int)Math.Ceiling((float)totalCustomers/(float)rows); 
     if(sord.ToUpper() == "DESC") 
     { 
      custList = custList.OrderByDescending(s => s.FirstName); 
      custList = custList.Skip(pageIndex * pagesize).Take(pagesize); 
     } 
     else 
     { 
      custList = custList.OrderBy(s => s.FirstName); 
      custList = custList.Skip(pageIndex * pagesize).Take(pagesize); 
     } 
     var jsonData = new 
     { 
      total = totalPages, 
      page, 
      customers = totalCustomers, 
      rows = custList 
     }; 
     return Json(jsonData, JsonRequestBehavior.AllowGet); 
    } 

回答

0

解决我的问题。 Dint知道我会很快得到解决方案。我删除来自控制器的所有现有的代码和刚添加该:

public JsonResult GetData() 
    { 
     var customers = db.Customers.Select(m => new { ID = m.ID, Company = m.Company, FirstName = m.FirstName, Email = m.EMail, Status = m.Status }).ToList(); 
     return Json(customers, JsonRequestBehavior.AllowGet); 
    } 

这是所有需要,只需2的代码,所述功能中的其余部分,即,寻呼,线排序,过滤已经由jqwidgets提供: )希望这能帮助那些遇到类似问题的人。
的脚本如下:

var source = 
     { 
      //localdata: GetData(), 
      url: '/Client/GetData', 
      datatype: "json", 
      mtype: 'POST', 
      datafields: [ 
       { name: 'ID', type: 'int' }, 
       { name: 'Company' }, 
       { name: 'FirstName' }, 
       { name: 'EMail' }, 
       { name: 'Status' } 
      ] 

     }; 

     var dataAdapter = new $.jqx.dataAdapter(source); 
     // initialize jqxGrid 
     $("#jqxgrid").jqxGrid(
     { 
      source: dataAdapter, 
      sortable: true, 
      filterable: true, 
      pageable: true, 
      columns: [ 
        { text: 'Client Id', datafield: 'ID', width: 200 }, 
        { text: 'Company', datafield: 'Company', width: 200 }, 
        { text: 'Username', datafield: 'FirstName', width: 180 }, 
        { text: 'Email', datafield: 'EMail', width: 100 }, 
        { text: 'Status', datafield: 'Status', width: 140 } 
      ] 
     }); 
    }); 
+0

你用错了标签的问题:“jqGrid的”,而不是“jqxgrid”。 – Oleg