2016-05-13 174 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