Zunächst einmal neu zu ASP.NET MVC.Wie Sortieren/Paging in jqgrid in ASP.net MVC
Ich möchte benutzerdefinierte Sortierung und Paging in JqGrid
mit einer gespeicherten Prozedur tun. Parameter für die gespeicherte Prozedur sind StartIndex
, PageSize
, SortExpression
.
Wie kann ich die aktuellen Seitendetails und Sortierdetails erhalten und wie ich meine Aktionsmethode für jede Navigation unter jqgrid
aufrufen kann?
Soweit ich weiß, ist die Seite der gespeicherten Prozedur in Ordnung. Aber wenn ich das erste Mal lade, werden 10 Datensätze abgerufen. Die Gesamtanzahl der Datensätze ist 16. Ich kann jedoch die Seite 2 oder das Steuerelement für die Navigation zur erwarteten nächsten Seite nicht sehen.
$(function() {
$("#myGrid").jqGrid({
url: '/Request/GetRequests/',
datatype: 'json',
mytype: 'get',
colNames: ['RequestType', 'RequestFrom', 'Summary', 'Status', 'CreatedDate', 'RequestID'],
colModel: [
{ name: 'RequestType', index: 'RequestType', width: 200 },
{ name: 'FromName', index: 'FromName', width: 200 },
{ name: 'Summary', index: 'Summary', width: 350 },
{ name: 'RequestStatus', index: 'RequestStatus', width: 150 },
{ name: 'CreatedDate', index: 'CreatedDate', width: 150 },
{ name: 'RequestID', index: 'RequestID', width: 150 }
],
pager: $('#myPager'),
rowNum: 10,
sortname: 'CreatedDate',
gridview: true,
sortorder: 'desc',
loadonce: true,
rowList: [5, 10, 20, 50],
width: 1100,
height: 900,
viewrecords: true,
caption: 'Request Details',
onSelectRow: function()
{
}
});
//var j = jQuery.noConflict();
//j('.datepicker').datepicker();
});
<table id="myGrid"></table>
<div id="myPager"></div>
Aktionsmethode:
[HttpGet]
public JsonResult GetRequests(string sidx, string sord, int page, int rows)
{
RequestRepository edb = new RequestRepository();
int pageIndex = page;
int pageSize = rows;
int startRow = (pageIndex * pageSize) + 1;
RequestNavigation data = edb.RequestGetParam(page, rows, sidx, sord);
int totalRecords = data.totalRecords;
int totalPages = (int)Math.Ceiling((float)totalRecords/(float)pageSize);
var jsonData = new
{
total = totalPages,
page,
records = totalRecords,
rows = data.RequestDetails.ToArray()
};
return Json(jsonData, JsonRequestBehavior.AllowGet);
}
Hallo Chomel, ich habe gerade meine Frage aktualisiert. Bitte sehen Sie –
Great Noufal. Wir sind jetzt nah dran. Könnten Sie detailliert angeben, was mit Ihrem Code nicht stimmt? Wo haben Sie versucht, das gespeicherte Verfahren einzubeziehen? –
, wie ich sehen kann, ist die Seite der Geschäftsprozedur in Ordnung. aber wenn ich das erste mal 10 lade, wird es kommen. Der Gesamtdatensatz ist 16. Ich kann die Seite 2 oder die Steuerung für die Navigation zur nächsten Seite nicht sehen. –