Я довольно новичок в MVC и JQuery. за последние пару дней я пытался использовать Jqgrid http://www.trirand.com/blog/ для отображения данных в моей базе данных. Я использую EF Code первым, чтобы создать свой единственный класс «Автор»Нет данных, отображаемых на 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, возвращается на странице, при попытке отладить одну ошибки, как это. –
@Gabriel, я использую Fiddler. Я могу видеть данные Json в Fiddler, но не в Jqgrid. сетка пуста. – Pamador
В вашем описании данные о том, что код возвращается в jqgrid, будут много полезны –