What you think about sorting the DataSouce i.e., datatable directly. If you'll sort the datasource directly then after rebinding the GridView also you'll be having sorted data. You can perform the sorting on datasource(i.e., your datatable) using linq as well as calling the
function of DataTable.
See the similar discussion below:
How To Sort Datatable in c#.net