2015-03-09 1 views
1

Je veux utiliser un jqgrid complet mais cela ne fonctionne pas. Il n'affiche aucune donnée mais action du contrôleur retournant les valeurs. Voici mon code d'action de contrôleur qui est utilisé dans mon projet. Mon but est d'utiliser pager dans jqgrid. S'il vous plaît aidez-moi et j'ai besoin de quelques conseils & conseils pour l'utilisation de jqgrid en mvc.Pourquoi mon jqgrid ne montre aucune donnée?

public ActionResult itemList(jqGridViewModel jqGridParameters) 
     { 
      var item = from t in db.tbl_Item select t; 
      var count = item.Count(); 
      int pageIndex = jqGridParameters.page; 
      int pageSize = jqGridParameters.rows; 
      int startRow = (pageIndex * pageSize) + 1; 
      int totalRecords = count; 
      int totalPages = (int)Math.Ceiling((float)totalRecords/(float)pageSize); 
      var result = new 
      { 
       total = totalPages, 
       page = pageIndex, 
       records = count, 
       rows = item.Select(x => new 
       { 
        x.id, 
        x.itemcode, 
        x.name, 
        x.qtyLimit, 
        x.Quantity, 
        x.sellingPrice, 
        x.supplier, 
        x.unitType, 
        x.vat, 
        x.batchno, 
        x.brand, 
        x.buyingPrice, 
        x.catg 
       } 
             ).ToArray() 
         .ToPagedList(pageIndex, pageSize) 
         .Select(x => new 
         { 
          id = x.id, 
          cell = new string[] { x.id.ToString(), 
                  x.name, 
                  x.itemcode,     
        Convert.ToString(x.qtyLimit), 
        x.Quantity.ToString(), 
        x.sellingPrice.ToString(), 
        x.supplier, 
        x.unitType, 
        x.vat.ToString(), 
        x.batchno, 
        x.brand, 
        x.buyingPrice.ToString(), 
        x.catg 
          } 
         } 
          ).ToArray() 
      }; 
      return Json(result, JsonRequestBehavior.AllowGet); 
     } 

Et mon code vue

jQuery("#list").jqGrid({ 
      cache: false, 
      async: false, 
      url: '/Settings/itemList/', 
      datatype: 'json', 
      mtype: 'GET', 


      colNames: ['New Item', 'Batch No', 'Supplier', 'Unit', 'B. Price', 'S. Price','Item Code','Vat','Limit'], 
      colModel: [ 

          { name: 'name', index: 'name', width: 110, align: 'center' }, 
          { name: 'batchno', index: 'batchno', width: 110, align: 'center' }, 
          { name: 'supplier', index: 'supplier', width: 110, align: 'center' }, 
          { name: 'unitType', index: 'unitType', width: 110, align: 'center', editoptions: { readonly: 'readonly' } }, 
          { name: 'buyingPrice', index: 'buyingPrice', width: 110, align: 'center', editoptions: { readonly: 'readonly' } }, 
          { name: 'sellingPrice', index: 'sellingPrice', align: 'center' }, 
          { name: 'itemcode', index: 'itemcode', width: 110, align: 'center'}, 
          { name: 'vat', index: 'vat', width: 110, align: 'center', editoptions: { readonly: 'readonly' } }, 
          { name: 'qtyLimit', index: 'qtyLimit', align: 'center' } 

      ], 

      pager: jQuery('#pager'), 
      rowNum: 15, 

      rowList: [5, 10, 20, 50], 
      sortname: 'iid', 
      sortorder: "desc", 
      viewrecords: true, 
      width: 960, 
      height: 200, 
      loadOnce: true, 
      imgpath: '/scripts/themes/coffee/images', 
      caption: 'Stock Information', 
      jsonReader: { 
       root: "Data", 
       page: "CurrentPage", 
       total: "TotalPages", 
       records: "TotalRecords", 
       repeatitems: false, 
       id: "0" 
      }, 
      recordtext: "Products {0} - {1} of {2}", 
      rownumbers: true, 
      pagerpos: 'center' 
    }); 

Répondre

1

Vous définissez JsonReader comme ceci:

jsonReader: { 
       root: "Data", 
       page: "CurrentPage", 
       total: "TotalPages", 
       records: "TotalRecords", 
       repeatitems: false, 
       id: "0" 
      }, 

Et ther sur le côté du contrôleur vous transmettre des données à anonimous objet qui ont cette propriétés:

var result = new 
      { 
       total = totalPages, 
       page = pageIndex, 
       records = count, 
       ... 
      } 

Vos noms de propriété doivent être identiques à ceux que vous définissez dans votre JsonReader