2016-05-13 54 views
0

jqgridを使用してレコードを表示、並べ替え、フィルタリングしています。現時点では、私はjsコードの作業を行っているが、私はコントローラのコードに何か間違っていると思う、それはグリッドを投入していない。 "No records to display"というメッセージで空白のjakgridしか見ることができません。どうしたらいいのか教えてください。ここ
は私のコードです:
コントローラ:データが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

は私の問題を解決しました。私は解決策をすぐに手に入れることができることを知っています。私は、コントローラからのすべての既存のコードを削除し、ちょうどこの追加:これは、それが必要とするすべての、コード、機能の残りの部分、すなわちページング、ソートのちょうど2つのラインは、フィルタリングが既にjqwidgetsによって提供される

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); 
    } 

ました: )これは、私と同様の問題に直面していた誰かを助けることを願っています。次のように
スクリプトは次のとおりです。

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

関連する問題