Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: как правильно найти индекс Добавлено: 29.01.04 17:37  

Автор вопроса:   Артём Л. | ICQ: 280044491 

есть DataGrid заполненый данными из DataTable

при на жатии на заголовке DataGrid'a выполняется сортировка данных

затем необходимо определить индекс строки в которой ячейка имеет нужное значение.

любой способ поиска (пробежать циклом по DataTable.Rows, DataView.Find) дает значение индекса не соответсвующего действительности так как, на сколько я понимаю, в DataTable ничего в действительности не сортируется

как определить реальный индекс?

Ответить

  Ответы Всего ответов: 4  

Номер ответа: 1
Автор ответа:
 beast81



ICQ: 192324197 

Вопросов: 11
Ответов: 13
 Профиль | | #1 Добавлено: 29.01.04 19:24

Используй Datagrid.CurrentRowIndex

Ответить

Номер ответа: 2
Автор ответа:
  Артём Л.



ICQ: 280044491 

Вопросов: 43
Ответов: 227
 Профиль | | #2 Добавлено: 29.01.04 19:53
>Используй Datagrid.CurrentRowIndex

но это ж возвратит всего навсего текущий индекс

Ответить

Номер ответа: 3
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #3
Добавлено: 31.01.04 15:01
Не совсем понятен вопрос...
Если я правильно тебя понял, то вот код для получения текущей строки
(DataRow) в DataGrid:

Public Function GetCurrentRow(ByVal Grid As DataGrid) As DataRow
' Получаем связного и приводим его к его же типу
Dim cm As CurrencyManager = CType(Grid.BindingContext(Grid.DataSource, Grid.DataMember), CurrencyManager)
' Получаем перекрышку текущего ряда
Dim drv As DataRowView = CType(cm.Current, DataRowView)
' Наконец, из перекрышки высасываем САМ РЯД
Return drv.Row

End Function

Ответить

Номер ответа: 4
Автор ответа:
  Артём Л.



ICQ: 280044491 

Вопросов: 43
Ответов: 227
 Профиль | | #4 Добавлено: 31.01.04 17:53
привет
это немного не то, мне нужно найти ячейку с нужным значением в
отсортированной при нажатии заголовка таблице DataGrid и получить её
действительный индес, соответствующий уже отсортированным данным.
на самом деле проблема решена вот так

Dim dec$ = "ID LIKE '" + curId + "'"
Dim rows() As DataRow = Me.grdData.DataSource.Select(dec)
Dim currencyManager As CurrencyManager =
Me.BindingContext(grdData.DataSource, grdData.DataMember)
Dim dataView As DataView = currencyManager.List
Dim rowIndex% = Array.IndexOf(DataTbl.Select(dataView.RowFilter,
dataView.Sort), rows(0))
If (rowIndex <> -1) Then currencyManager.Position = rowIndex

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам