我的产品型号如下
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);
}
要显示的脚本如下,
$("#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 :(得分:0)
在Product中,ProductName的类型为string,其中Category属性不是string类型。因此,应该将Category转换为字符串类型以保存类别名称。
与此同时,在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,