표시된 행의 정렬을 에 구현하고 싶습니다. jqgrid jqgrid의 기본 동작은 모든 레코드를 정렬합니다. 나는 서버 측에서 처리했으나 문제는 내가 정렬 할 때 나는 항상 페이지가 1이 되어도 읽을 수있다. 페이지 2 또는 other.below가 내 코드이기도하다. loadComplete
, & onPaging
메서드를 시도했다. 당신이 페이징을 얻을 후 jqgrid로 문제 정렬
$(document).ready(function() {
$("#grid").jqGrid({
emptyrecords: "No records to view",
ignoreCase: true,
datatype: "json",
url: '@Url.Action("LoadData", "Home")',
mtype: "GET",
height: 'auto',
rowNum: 5,
rowList: [5, 10, 15, 20],
colNames: ['EmployeeId', 'EmployeeCity', 'EmployeeName'],
colModel: [
{ name: 'EmployeeId', index: 'EmployeeId', key: true, width: 200, sorttype: 'int' },
{ name: 'EmployeeName', index: 'EmployeeName', width: 200, sorttype: 'text' },
{ name: 'EmployeeCity', index: 'EmployeeCity', width: 200, sorttype: 'text' }
],
pager: '#pager',
sortname: 'EmployeeId',
viewrecords: true,
sortorder: "asc",
caption: "jqGrid Example"
}).navGrid("#pager",
{ search: false, refresh: false, add: false, edit: false, del: false },
{},
{},
{}
);
});
그리고 내 서버 측 코드는,
public ActionResult LoadData(int page, int rows, string sidx, string sord)
{
List<Employee> employeeList = new List<Employee>();
for (int i = 1; i < 18; i++)
{
employeeList.Add(
new Employee() { EmployeeId = i, EmployeeCity = "Mumbai_" + i, EmployeeName = "Jason_" + i }
);
}
var totalRecords = 0;
var totalPages = 0;
var griddata = new List<Employee>();
if (employeeList != null)
{
griddata = employeeList.Skip((page - 1) * rows).Take(rows).ToList();
switch (sidx.ToLower())
{
case "employeeid":
if (sord.ToLower() == "asc")
griddata.OrderBy(x => x.EmployeeId).ToList();
else
griddata.OrderByDescending(x => x.EmployeeId).ToList();
break;
default:
griddata.OrderByDescending(x => x.EmployeeName).ToList();
break;
}
totalRecords = employeeList.Count;
totalPages = (int)Math.Ceiling((double)totalRecords/(double)rows);
}
var employeeListData = new
{
total = totalPages,
page = page,
records = totalRecords,
rows = griddata,
};
return Json(employeeListData, JsonRequestBehavior.AllowGet);
}
로있는 jqGrid 수정이 work.My의 주요 문제는 내가 컨트롤러에 2 페이지와 정렬 그리드 오전 때 나는 page1.I이가있는 jqGrid 자체의 문제라고 생각받을입니다 doesnot. – SidD
격자 정의가 잘 보입니다. 컨트롤러 메소드의 끝에서'griddata '에 무엇이 있는지 디버그에 체크인 했습니까? –
예, 주된 것은 페이지가 2 일 때도 항상 page1을 보여줍니다. 위 코드를 시도해 볼 수 있습니다. 페이지 2를 보내지 않을 것입니다. 또한 HTTP 헤더를 확인했으며 페이지 1을 보여주고 있습니다. 오전 2시. – SidD