【发布时间】:2011-01-21 15:07:19
【问题描述】:
我正在尝试使 jqGrid 中的导航箭头正常工作。 MVC 3 RC2、实体框架 4、.NET 框架 4、jqGrid 3.8.2
问题是,我没有记录从 1 到 10、11 到 20 等等。 .skip 方法似乎无法正常工作。
jqGrid 使用正确的参数调用 ActionResult。
也许你有一个想法?
问候,
浮动
//
// Post: /Admin/IndexGridData
// Gibt ein JSON Result mit allen Aufträgen für das jqGrid zurück
[HttpPost]
public ActionResult IndexGridData(string sidx, string sord, int page, int rows)
{
// Ermittlung der Zusatzinformationen die das Grid anzeigt (Anzahl Aufträge, momentan angezeigte Aufträge
int start = (page -1) * rows;
int summeauftraege = _db.Auftrag.Where(x => x.AuftragStatus != "storno").Count();
int totalPages = (int)Math.Ceiling((float)summeauftraege / (float)rows);
var auftraege = (from auftrag in _db.Auftrag
.Include("KT_AuftragStatus")
.Include("KT_Bearbeitungsort")
.Include("AuftragPartner")
select new
{
Titel = auftrag.Titel,
Auftrag_GUID = auftrag.Auftrag_GUID,
Bearbeitungsort = auftrag.KT_Bearbeitungsort.Text,
AuftragStatus = auftrag.KT_AuftragStatus.Text,
}).Where(x => x.AuftragStatus != "storniert").OrderBy(x => x.Titel)
.Skip(start)
.Take(rows)
.AsEnumerable().ToList();
// Sortierung des Grids anwenden
if (sidx == "Titel" && sord == "asc")
{
auftraege = auftraege.OrderBy(x => x.Titel).AsEnumerable().ToList();
}
else if (sidx == "Titel" && sord == "desc")
{
auftraege = auftraege.OrderByDescending(x => x.Titel).AsEnumerable().ToList();
}else if (sidx == "Bearbeitungsort" && sord == "asc")
{
auftraege = auftraege.OrderBy(x => x.Bearbeitungsort).AsEnumerable().ToList();
}
else if (sidx == "Bearbeitungsort" && sord == "desc")
{
auftraege = auftraege.OrderByDescending(x => x.Bearbeitungsort).AsEnumerable().ToList();
}
else if (sidx == "AuftragStatus" && sord == "asc")
{
auftraege = auftraege.OrderBy(x => x.AuftragStatus).AsEnumerable().ToList();
}
else if (sidx == "AuftragStatus" && sord == "desc")
{
auftraege = auftraege.OrderByDescending(x => x.AuftragStatus).AsEnumerable().ToList();
}
// Erstellung des JSON Objekts welches die einzelnen Aufträge enthält
var jsonauftraege = new object[auftraege.Count()];
for (int i = 0; i < auftraege.Count; i++)
{
jsonauftraege[i] = new
{
id = auftraege[i].KA_Auftrag_GUID,
cell = new[] {
"Details",
"Bearbeiten",
(auftraege[i].Titel != null) ? auftraege[i].Titel.ToString(): " ",
(auftraege[i].Bearbeitungsort != null) ? auftraege[i].Bearbeitungsort.ToString(): " ",
(auftraege[i].AuftragStatus != null) ? auftraege[i].AuftragStatus.ToString(): " ",
}
};
}
// Erstellung des JSON Results welches das Grid versteht
var result = new JsonResult();
result.Data = new { page = page, records = summeauftraege, rows = jsonauftraege, total = totalPages };
return Json(result.Data);
}
【问题讨论】:
标签: c# asp.net-mvc entity-framework jqgrid