Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 实体框架。跳过未正确工作_C#_Asp.net Mvc_Entity Framework_Jqgrid - Fatal编程技术网

C# 实体框架。跳过未正确工作

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

我正在努力使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]
公共操作结果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(): "&nbsp;", 
                (auftragListe[i].Bearbeitungsort != null) ? auftragListe[i].Bearbeitungsort.ToString(): "&nbsp;", 
                (auftragListe[i].AuftragStatus != null) ? auftragListe[i].AuftragStatus.ToString(): "&nbsp;", 
            }
            };
        }

        // 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(): "&nbsp;", 
                (auftragListe[i].Bearbeitungsort != null) ? auftragListe[i].Bearbeitungsort.ToString(): "&nbsp;", 
                (auftragListe[i].AuftragStatus != null) ? auftragListe[i].AuftragStatus.ToString(): "&nbsp;", 
            }
            };
        }

        // 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);
    }