Подсветка выделенной строки не перемещается при сортировке сетки - PullRequest
1 голос
/ 05 ноября 2010

У меня есть сетевое представление ASP.net в веб-форме, где пользователь может выбрать строку.Когда они выбирают его, строка выделяется желтым цветом.Проблема в том, что когда я сортирую таблицу, она сортируется правильно, но выделение остается на той же строке.Все данные перемещаются, но выделение остается на месте.

Кто-нибудь может подсказать, как можно выделить выделение для данных?

Ответы [ 3 ]

1 голос
/ 08 ноября 2010

Получите SelectedDataKey.Value перед сортировкой (OnSorting?).Затем после сортировки (OnSorted?) Используйте что-то вроде:

foreach(var row in GridView1.Rows)
{
   var i = Convert.ToInt32(ViewState["MySavedSelectedDataKey"]));
   if(GridView1.DataKeys[row.RowIndex].Value == i)
   {
       GridView1.SelectedIndex = row.RowIndex;
       break;
   }
}

Возможно, вам придется снова вызвать DataBind (), чтобы показать новый набор SelectedIndex.

Я не верю, что тамв любом случае, чтобы сделать это, не проходя через каждый ряд.Но если у вас есть страничная страничка, то вам нужно только просмотреть количество строк в свойстве PageSize, а не каждую строку, возвращенную из базы данных.

0 голосов
/ 05 ноября 2010

Довольно просто найти текущий выбранный элемент datakey - MyGrid.SelectedDataKey.Value.ToString () Это если у вас есть один DataKey, в противном случае вам нужно прочитать оба значения, которые доступны в MyGrid.SelectedDataKey.Values ​​

После сортировки вам нужно перебрать элементы и найти тот, который соответствует ключам данных.MyGrid.Rows [i] .DataItem должен помочь с этим - обратите внимание, что это доступно только при привязке данных, поэтому, если вы выполните повторную сортировку без повторной привязки данных (например, если вы сохраняете все данные в viewstate), она ничего не будет содержать.

0 голосов
/ 05 ноября 2010

Проблема в том, что вы сортируете источник данных для сетки, а не для сетки.

Получите идентификатор выбранной строки перед сортировкой, а затем установите его как выбранный после сортировки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...