I'm using angular datatable to show a list of data and performing server side sorting. when I sort any column I receive the name of column and the sort order. I am using the below code to sort the record.
if (!string.IsNullOrEmpty(sortField) && !string.IsNullOrEmpty(sortOrder))
{
if (sortOrder == "asc")
{
if (sortField == "cnic")
{
data2 = data2.OrderBy(a => a.Cnic);
}
else if (sortField == "firstName")
{
data2 = data2.OrderBy(a => a.FirstName);
}
else if (sortField == "fatherName")
{
data2 = data2.OrderBy(a => a.FatherName);
}
else if (sortField == "gender")
{
data2 = data2.OrderBy(a => a.Gender);
}
else if (sortField == "designation")
{
data2 = data2.OrderBy(a => a.Designation);
}
else if (sortField == "cadreName")
{
data2 = data2.OrderBy(a => a.CadreName);
}
else if (sortField == "departmentName")
{
data2 = data2.OrderBy(a => a.DepartmentName);
}
else if (sortField == "districtName")
{
data2 = data2.OrderBy(a => a.DistrictName);
}
else if (sortField == "placeOfPostinfName")
{
data2 = data2.OrderBy(a => a.PlaceOfPostingName);
}
else if (sortField == "bps")
{
data2 = data2.OrderBy(a => a.Bps);
}
else if (sortField == "seniorityNo")
{
data2 = data2.OrderBy(a => a.SeniorityNo);
}
}
else
{
if (sortField == "cnic")
{
data2 = data2.OrderByDescending(a => a.Cnic);
}
else if (sortField == "firstName")
{
data2 = data2.OrderByDescending(a => a.FirstName);
}
else if (sortField == "fatherName")
{
data2 = data2.OrderByDescending(a => a.FatherName);
}
else if (sortField == "gender")
{
data2 = data2.OrderByDescending(a => a.Gender);
}
else if (sortField == "designation")
{
data2 = data2.OrderByDescending(a => a.Designation);
}
else if (sortField == "cadreName")
{
data2 = data2.OrderByDescending(a => a.CadreName);
}
else if (sortField == "departmentName")
{
data2 = data2.OrderByDescending(a => a.DepartmentName);
}
else if (sortField == "districtName")
{
data2 = data2.OrderByDescending(a => a.DistrictName);
}
else if (sortField == "placeOfPostinfName")
{
data2 = data2.OrderByDescending(a => a.PlaceOfPostingName);
}
else if (sortField == "bps")
{
data2 = data2.OrderByDescending(a => a.Bps);
}
else if (sortField == "seniorityNo")
{
data2 = data2.OrderByDescending(a => a.SeniorityNo);
}
}
}
Is there any simple way to do this task... my expected code is, I want to only input the order column name (cnic, firstname, fathername...) and sort order (asc,desc). I have many columns and data table to sort and i need a universal method to to this.