Javascript
sorting: true, //Enable sorting
defaultSorting: 'Name ASC', //Sort by Name by default
Controller
[HttpPost]
public JsonResult PersonList(int jtStartIndex = 0, int jtPageSize = 0, string jtSorting = null)
{
try
{
int personCount = _personRepository.GetPersonCount();
List<person> persons = _personRepository.GetPersons(jtStartIndex, jtPageSize, jtSorting);
return Json(new { Result = "OK", Records = persons, TotalRecordCount = personCount });
}
catch (Exception ex)
{
return Json(new { Result = "ERROR", Message = ex.Message });
}
}
GetPersons Method with Sorting Criterias
public IEnumerable GetDeployments(string show, string name, int startIndex, int count, string sorting)
{
//Get List of Persons from Database
if (!string.IsNullOrEmpty(name))
{
deploymentsList = deploymentsList.Where(p => p.KomponentenName.ToString().StartsWith(name));
}
if (string.IsNullOrEmpty(sorting) || sorting.Equals("KomponentenName ASC"))
{
deploymentsList = deploymentsList.OrderBy(p => p.KomponentenName);
}
else if (sorting.Equals("KomponentenName DESC"))
{
deploymentsList = deploymentsList.OrderByDescending(p => p.KomponentenName);
}
else if (sorting.Equals("datum ASC"))
{
deploymentsList = deploymentsList.OrderBy(p => p.datum);
}
else if (sorting.Equals("datum DESC"))
{
deploymentsList = deploymentsList.OrderByDescending(p => p.datum);
}
else if (sorting.Equals("RequesterName ASC"))
{
deploymentsList = deploymentsList.OrderBy(p => p.RequesterName);
}
else if (sorting.Equals("RequesterName DESC"))
{
deploymentsList = deploymentsList.OrderByDescending(p => p.RequesterName);
}
else if (sorting.Equals("dateDeployed ASC"))
{
deploymentsList = deploymentsList.OrderBy(p => p.dateDeployed);
}
else if (sorting.Equals("dateDeployed DESC"))
{
deploymentsList = deploymentsList.OrderByDescending(p => p.dateDeployed);
}
else
{
deploymentsList = deploymentsList.OrderBy(p => p.KomponentenName); //Default!
}
return count > 0
? deploymentsList.Skip(startIndex).Take(count).ToList() //Paging
: deploymentsList.ToList(); //No paging
}