2016-11-10 6 views
0

У меня есть Модель продукта, как показано нижеДисплей CategoryName в JQGrid с Наименованием и Ценой

public class Product 
{ 
public int ProductId { get; set; } 
public string ProductName { get; set; } 
public int CategoryId {get;set;} 
public float Price { get; set; } 
public Category category { get; set; } 
} 

Я прочитал Категорию ID и имя категории в поле ниже способ, и теперь хочу отобразить название продукта, название категории и цену в JQGrid но он отображает только имя и цену продукта, но не CayegoryName.

public JsonResult ShowProducts(string sidx, string sord, int page, int rows) 
     { 
      int pageIndex = Convert.ToInt32(page) - 1; 
      int pageSize = rows; 

      BusinessLayer BusLayer = new BusinessLayer(); 

      List<Product> ProdList = new List<Product>(); 
      ProdList = BusLayer.ReadProducts(); 

      foreach (var Prd in ProdList) 
      { 
       Prd.category = BusLayer.GetCategoryById(Prd.CategoryId);     
      } 

      int recordCount = ProdList.Count; 
      var totalPages = (int)Math.Ceiling((float)recordCount/(float)rows); 

      var jsonData = new 
      { 
       total = totalPages, 
       records = recordCount, 
       rows = ProdList     
      }; 

      return Json(jsonData, JsonRequestBehavior.AllowGet); 
     } 

Scrips для отображения, как показано ниже,

$("#grid").jqGrid({ 
     url: "/Admin/ShowProducts", 
     datatype: 'json', 
     mtype: 'Get', 
     colNames: ['Id', 'Product Name', 'Category Name', 'Price', 'CatId'], 
     colModel: [ 
      { key: true, hidden: true, name: 'Id', index: 'Id', editable: true }, 
      { key: false, name: 'ProductName', index: 'ProductName', editable: true }, 
      { key: false, name: 'CategoryName', index: 'CategoryName', editable: true }, 
      { key: false, name: 'Price', index: 'Price', editable: true }, 
      { key: true, hidden: true, name: 'CATId', index: 'CatId', editable: true }, 
      ], 
     pager: jQuery('#pager'), 
     rowNum: 5, 
...... 
...... 
...... 

ответ

0

В продукте, ProductName имеет тип строки, в которой как категория собственности не строкового типа. Поэтому преобразование категории в тип строки для хранения названия категории должно быть выполнено.

Наряду с этим в свойствах jqGrid имя colModel для прямого преобразования в свойства. Поэтому для категории имя должно быть категорией, кроме названия категории. Обновление выполнено так, как указано ниже,

$("#grid").jqGrid({ 
     url: "/Admin/ShowProducts", 
     datatype: 'json', 
     mtype: 'Get', 
     colNames: ['Id', 'Product Name', 'Category Name', 'Price', 'CatId'], 
     colModel: [ 
      { key: true, hidden: true, name: 'Id', index: 'Id', editable: true }, 
      { key: false, name: 'ProductName', index: 'ProductName', editable: true }, 
      { key: false, name: 'Category', index: 'Category', editable: true }, 
      { key: false, name: 'Price', index: 'Price', editable: true }, 
      { key: true, hidden: true, name: 'CATId', index: 'CatId', editable: true }, 
      ], 
     pager: jQuery('#pager'), 
     rowNum: 5, 

 Смежные вопросы

  • Нет связанных вопросов^_^