string selectedValue = (string)ViewState["SelectedValue"];
// Повторно выбрать ранее выбранную строку.
foreach (GridViewRow row in GridView1.Rows)
{
string keyValue = GridView1.DataKeys[row.RowIndex].Value.ToString();
if (keyValue == selectedValue)
{
GridView1.SelectedIndex = row.RowIndex;
return;
}
}
}
}
Следует иметь в виду, что этот подход может быть довольно запутанным, если включено разбиение на страницы (которое будет описано ниже в разделе "Разбиение на страницы в GridView"). Это объясняется тем, что операция сортировки может переместить текущую строку на другую страницу, что сделает ее невидимой, но по-прежнему выбранной. Совершенно законная ситуация с точки зрения кода, но на практике воспринимается пользователями как сбивающая с толку.
Сортировка GridView достаточно проста — здесь она поддерживается по любому сортируемому столбцу в порядке возрастания. Но в некоторых приложениях пользователям предлагаются большие возможности сортировки, и они могут упорядочивать огромные результирующие наборы более сложными сортирующими выражениями.
Первое, что можно сделать на пути совершенствования сортировки в GridView — обработать событие GridView.Sorting, которое происходит непосредственно перед применением сортировки. В этот момент вы можете изменить выражение сортировки. Например, это можно использовать для реализации шаблона убывающей/возрастающей сортировки. В этом шаблоне, когда вы щелкаете на столбце первый раз. применяется сортировка по возрастанию, а после второго щелчка — сортировка по убыванию. Это подобно тому, как выполняется сортировка в проводнике Windows.
Вот код, который необходим для реализации такого подхода:
protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
{
// Проверить, соответствует ли текущая
// сортировка (GridView1.SortExpression)
// запрошенной сортировке (е.SortExpression).
// Этот код пытается сравнить начало выражения сортировки GridView
// Финальная часть - ASC или DESC, игнорируется.
if (GridView1.SortExpression.StartsWith(e.SortExpression))
{
// Вторично применена сортировка по тому же полю.
// Выворачиваем ее.
предыдущая следующая страница оглавление
440