Первый шаг для установки AllowSorting
свойства GridView
в true
, затем добавьте SortExpression
свойство для каждого столбца, который вы будете использовать для сортировки:
Свойство SortExpression указывает выражение, котороедолжен использоваться для сортировки данных при нажатии на ссылку заголовка сортировки этого поля
Давайте рассмотрим BoundField
из вашего кода выше, я добавил свойство SortExpression
со значением, установленным в BrandName
, котороеозначает, что при нажатии на заголовок столбца для BrandName
столбец «BrandName» в вашем DataTable
будет использоваться для сортировки данных:
Теперь в событии gdvMainList_Sorting
у вас естьчтобы привязать сетку к отсортированным данным:
protected void gdvMainList_Sorting(object sender, System.Web.UI.WebControls.GridViewSortEventArgs e)
{
//Using DataView for sorting DataTable's data
DataView view = dtMedication.DefaultView;
view.Sort = String.Format("{0} {1}", e.SortExpression, GetSortingDirection());
gdvMainList.DataSource = view;
gdvMainList.DataBind();
}
Если вы заметили, я использовал getSortingDirection (), метод, который возвращает либо «ASC», либо «DESC» для сортировки данных в порядке возрастания или убывания
protected string GetSortingDirection()
{
if(ViewState["SortDirection"] == null)
ViewState["SortDirection"] = "ASC";
else if(ViewState["SortDirection"] == "ASC")
ViewState["SortDirection"] = "DESC";
else
ViewState["SortDirection"] = "ASC";
return ViewState["SortDirection"];
}
Некоторые полезные ссылки:
- Сортировка GridView с использованием VB.net
- Учебник по сортировке и подкачке