我對MVC和Jquery相當陌生。最近幾天我試圖用Jqgrid http://www.trirand.com/blog/在我的數據庫中顯示數據。我使用EF代碼首先創建我的唯一一類「作者」JQGrid沒有顯示數據
public class Author
{
public int AuthorID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string FullName
{
get
{
return FirstName+ " "+LastName ;
}
}
}
,這是我的「AuthorController」的創建JSON數據:
public ActionResult LinqGridData(string sidx, string sord, int page, int rows)
{
var jsonData = new
{
total = 5,
page = 1,
records = db.Authors.Count(),
rows = db.Authors.Select(a => new
{
id = a.AuthorID,
cell = new { a.AuthorID, a.FirstName, a.LastName }
}
)
};
return Json(jsonData, JsonRequestBehavior.AllowGet);
}
我也嘗試了不同的方法,讓我的JSON數據:
public ActionResult LinqGridData (string sidx, string sord, int page, int rows)
{
var jsonData = new {
total = 5,
page=1,
records = db.Authors.Count(),
rows = (from a in db.Authors
select new
{
id = a.AuthorID,
cell = new { a.AuthorID, a.FirstName, a.LastName }
}
)
};
return Json(jsonData,JsonRequestBehavior.AllowGet);
}
,這裏是我的JavaScript,我在我的視圖中使用:
$(function() {
$("#list").jqGrid({
url: '/Author/LinqGridData',
datatype:'json',
mtype: 'GET',
colNames:['Author ID', 'First Name', 'Last Name'],
colModel:[
{name:'AuthorID',index:'AuthorID',width:55 },
{name:'FirstName',index:'FirstName',width:90 },
{name:'LastName',index:'LastName',width:80,align:'right' }
],
pager:'#pager',
rowNum: 10,
rowList:[5, 10, 20, 30],
sortname:'AuthorID',
sortorder:'desc',
viewrecords:true,
gridview:true,
caption:'Author List'
});
});
jQuery("#datagrid").jqGrid('navGrid', '#navGrid', { edit: true, add: true, del: true });
我可以用虛擬數據顯示網格。這種操作方法:
public ActionResult GridData(string sidx, string sord, int page, int rows)
{
var jsonData = new
{
total = 1, // we'll implement later
page = 1,
records = 3, // implement later
rows = new[]
{
new {id = 1, cell = new[] {"1", "-7", "Is this a good question?"}},
new {id = 2, cell = new[] {"2", "15", "Is that a good question?"}},
new {id = 3, cell = new[] {"3", "23", "Why is the sky in the sky?"}}
}
};
return Json(jsonData,JsonRequestBehavior.AllowGet);
}
問題是,每當我想從我的數據庫顯示的數據,我只可以顯示網格本身不是數據。 我試圖在發送到視圖之前將json數據轉換爲toList()或toArary(),結果相同。我希望我明確自己。
任何幫助,將不勝感激。
嘗試使用工具,如提琴手檢查正在返回什麼JSON的頁面,試圖調試一個錯誤這樣的時候。 – 2013-03-03 11:32:55
@Gabriel,我正在使用Fiddler。我可以在提琴手中看到我的Json數據,但不能在Jqgrid中看到。網格是空的。 – Pamador 2013-03-03 13:03:57
在您的描述中,代碼返回到jqgrid的數據將是一個很有用的數據 – 2013-03-03 13:48:01