1

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.

  • If your data is not changing it doesn't make any sense to make the server calls just for sorting the data that is something you should handle on the client side. – Mihir Dave Apr 23 '19 at 12:17
  • @MihirDave I have millions of data and I'm using server side pagination i can not pop millions of records at once that,s why i am using server side... – zulqarnain jalil Apr 23 '19 at 12:21
  • Okay makes sense. – Mihir Dave Apr 23 '19 at 12:22
  • Possible duplicate of [How to dynamically order by certain entity properties in Entity Framework 7 (Core)](https://stackoverflow.com/questions/36298868/how-to-dynamically-order-by-certain-entity-properties-in-entity-framework-7-cor) – Marc Apr 24 '19 at 06:41

0 Answers0