C# 实体框架。跳过未正确工作
我正在努力使jqGrid中的导航箭头工作。 MVC 3 RC2、实体框架4、.NET框架4、jqGrid 3.8.2 问题是,从1到10,11到20等等,我没有得到记录。.skip方法似乎无法正常工作 jqGrid使用正确的参数调用ActionResult 也许你有个主意 问候,C# 实体框架。跳过未正确工作,c#,asp.net-mvc,entity-framework,jqgrid,C#,Asp.net Mvc,Entity Framework,Jqgrid,我正在努力使jqGrid中的导航箭头工作。 MVC 3 RC2、实体框架4、.NET框架4、jqGrid 3.8.2 问题是,从1到10,11到20等等,我没有得到记录。.skip方法似乎无法正常工作 jqGrid使用正确的参数调用ActionResult 也许你有个主意 问候, 浮动 // //Post:/Admin/IndexGridData //这是一个由艾伦·奥夫塔根·弗尔(allen Aufträgen für)设计的jqGrid zurück [HttpPost] 公共操作结果Ind
浮动
//
//Post:/Admin/IndexGridData
//这是一个由艾伦·奥夫塔根·弗尔(allen Aufträgen für)设计的jqGrid zurück
[HttpPost]
公共操作结果IndexGridData(字符串sidx、字符串sord、整型页面、整型行)
{
//在电网中提供最新信息(电网、发电厂、发电厂)
int start=(第1页)*行;
int summauftraege=_db.Auftrag.Where(x=>x.AuftragStatus!=“storno”).Count();
int totalPages=(int)数学上限((浮点)Summauftraege/(浮点)行);
var auftraege=(来自_db.auftrag中的auftrag
.包括(“KT_AuftragStatus”)
.包括(“KT_Bearbeitungsort”)
.包括(“合作伙伴”)
选择新的
{
滴度=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)
.跳过(开始)
.Take(行)
.AsEnumerable().ToList();
//安文登机场
如果(sidx==“Titel”和&sord==“asc”)
{
auftraege=auftraege.OrderBy(x=>x.Titel).AsEnumerable().ToList();
}
否则如果(sidx==“滴度”&&sord==“描述”)
{
auftraege=auftraege.OrderByDescending(x=>x.Titel).AsEnumerable().ToList();
}否则如果(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();
}
//我们的目标是在未来几年内实现的
var jsonauftraege=新对象[auftraege.Count()];
for(int i=0;i
.OrderBy()
外部查询必须在.Skip()
之前进行。据我所知,按您现有的方式进行操作甚至不应该起作用。如果它起作用,您可能在对象空间中,而不是L2E。您必须在跳过或执行之前进行订购。以下是解决方案:
//
// 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;
var auftraege = _db.Auftrag
.Where(x => x.AuftragStatus != "storno")
.OrderBy(x => x.Titel)
.Select(auftrag => new AuftragModels.GridAnsicht
{
Auftrag_GUID = auftrag.Auftrag_GUID,
Titel = auftrag.Titel,
Bearbeitungsort = auftrag.KT_Bearbeitungsort.Text,
AuftragStatus = auftrag.KT_AuftragStatus.Text,
}
);
}
// zusammen gesetztes SQL Statement speichern
var sqlstring = ((ObjectQuery)auftraege).ToTraceString();
// Sortierung des Grids anwenden
if (sidx == "Titel" && sord == "asc")
{
auftraege = auftraege.OrderBy(x => x.Titel);
}
else if (sidx == "Titel" && sord == "desc")
{
auftraege = auftraege.OrderByDescending(x => x.Titel);
}
else if (sidx == "Bearbeitungsort" && sord == "asc")
{
auftraege = auftraege.OrderBy(x => x.Bearbeitungsort);
}
else if (sidx == "Bearbeitungsort" && sord == "desc")
{
auftraege = auftraege.OrderByDescending(x => x.Bearbeitungsort);
}
else if (sidx == "AuftragStatus" && sord == "asc")
{
auftraege = auftraege.OrderBy(x => x.AuftragStatus);
}
else if (sidx == "AuftragStatus" && sord == "desc")
{
auftraege = auftraege.OrderByDescending(x => x.AuftragStatus);
}
// zusammen gesetztes SQL Statement speichern
//sqlstring = ((ObjectQuery)auftraege).ToTraceString();
// aufträge zu einer Liste speichern, damit diese durchlaufen werden kann
var auftragListe = auftraege
.AsEnumerable().ToList();
// Anzahl der Seiten berechnen
int summeauftraege = auftragListe.Count();
int totalPages = (int)Math.Ceiling((float)summeauftraege / (float)rows);
// nur die Aufträge anzeigen, die auf eienr Seite sichtbar sind
auftragListe = auftragListe
.Skip(start)
.Take(rows)
.AsEnumerable().ToList();
// Erstellung des JSON Objekts welches die einzelnen Aufträge enthält
var jsonauftraege = new object[auftragListe.Count()];
for (int i = 0; i < auftragListe.Count(); i++)
{
jsonauftraege[i] = new
{
id = auftragListe[i].Auftrag_GUID,
cell = new[] {
"Details",
"Bearbeiten",
(auftragListe[i].Titel != null) ? auftragListe[i].Titel.ToString(): " ",
(auftragListe[i].Bearbeitungsort != null) ? auftragListe[i].Bearbeitungsort.ToString(): " ",
(auftragListe[i].AuftragStatus != null) ? auftragListe[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);
}
//
//Post:/Admin/IndexGridData
//这是一个由艾伦·奥夫塔根·弗尔(allen Aufträgen für)设计的jqGrid zurück
[HttpPost]
公共操作结果IndexGridData(字符串sidx、字符串sord、整型页面、整型行)
{
//在电网中提供最新信息(电网、发电厂、发电厂)
int start=(第1页)*行;
var auftraege=_db.Auftrag
.Where(x=>x.AuftragStatus!=“storno”)
.OrderBy(x=>x.Titel)
.Select(auftrag=>newauftfragmodels.GridAnsicht
{
Auftrag_GUID=Auftrag.Auftrag_GUID,
滴度=auftrag.Titel,
Bearbeitungsort=auftrag.KT_Bearbeitungsort.Text,
AuftragStatus=auftrag.KT_AuftragStatus.Text,
}
);
}
//zusammen gesetztes SQL语句speichen
var sqlstring=((ObjectQuery)auftraege.ToTraceString();
//安文登机场
如果(sidx==“Titel”和&sord==“asc”)
{
auftraege=auftraege.OrderBy(x=>x.Titel);
}
否则如果(sidx==“滴度”&&sord==“描述”)
{
auftraege=auftraege.OrderByDescending(x=>x.Titel);
}
否则如果(sidx==“Bearbeitungsort”&sord==“asc”)
{
auftraege=auftraege.OrderBy(x=>x.Bearbeitungsort);
}
else if(sidx==“Bearbeitungsort”&sord==“desc”)
{
auftraege=auftraege.OrderByDescending(x=>x.Bearbeitungsort);
}
else if(sidx==“AuftragStatus”和&sord==“asc”)
{
auftraege=auftraege.OrderBy(x=>x.AuftragStatus);
}
else if(sidx==“AuftragStatus”和&sord==“desc”)
{
奥夫特拉
//
// 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;
var auftraege = _db.Auftrag
.Where(x => x.AuftragStatus != "storno")
.OrderBy(x => x.Titel)
.Select(auftrag => new AuftragModels.GridAnsicht
{
Auftrag_GUID = auftrag.Auftrag_GUID,
Titel = auftrag.Titel,
Bearbeitungsort = auftrag.KT_Bearbeitungsort.Text,
AuftragStatus = auftrag.KT_AuftragStatus.Text,
}
);
}
// zusammen gesetztes SQL Statement speichern
var sqlstring = ((ObjectQuery)auftraege).ToTraceString();
// Sortierung des Grids anwenden
if (sidx == "Titel" && sord == "asc")
{
auftraege = auftraege.OrderBy(x => x.Titel);
}
else if (sidx == "Titel" && sord == "desc")
{
auftraege = auftraege.OrderByDescending(x => x.Titel);
}
else if (sidx == "Bearbeitungsort" && sord == "asc")
{
auftraege = auftraege.OrderBy(x => x.Bearbeitungsort);
}
else if (sidx == "Bearbeitungsort" && sord == "desc")
{
auftraege = auftraege.OrderByDescending(x => x.Bearbeitungsort);
}
else if (sidx == "AuftragStatus" && sord == "asc")
{
auftraege = auftraege.OrderBy(x => x.AuftragStatus);
}
else if (sidx == "AuftragStatus" && sord == "desc")
{
auftraege = auftraege.OrderByDescending(x => x.AuftragStatus);
}
// zusammen gesetztes SQL Statement speichern
//sqlstring = ((ObjectQuery)auftraege).ToTraceString();
// aufträge zu einer Liste speichern, damit diese durchlaufen werden kann
var auftragListe = auftraege
.AsEnumerable().ToList();
// Anzahl der Seiten berechnen
int summeauftraege = auftragListe.Count();
int totalPages = (int)Math.Ceiling((float)summeauftraege / (float)rows);
// nur die Aufträge anzeigen, die auf eienr Seite sichtbar sind
auftragListe = auftragListe
.Skip(start)
.Take(rows)
.AsEnumerable().ToList();
// Erstellung des JSON Objekts welches die einzelnen Aufträge enthält
var jsonauftraege = new object[auftragListe.Count()];
for (int i = 0; i < auftragListe.Count(); i++)
{
jsonauftraege[i] = new
{
id = auftragListe[i].Auftrag_GUID,
cell = new[] {
"Details",
"Bearbeiten",
(auftragListe[i].Titel != null) ? auftragListe[i].Titel.ToString(): " ",
(auftragListe[i].Bearbeitungsort != null) ? auftragListe[i].Bearbeitungsort.ToString(): " ",
(auftragListe[i].AuftragStatus != null) ? auftragListe[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);
}