Страница: 1 | 
		
		 
			   
			 
			 есть DataGrid заполненый данными из DataTable при на жатии на заголовке DataGrid'a выполняется сортировка данных затем необходимо определить индекс строки в которой ячейка имеет нужное значение. любой способ поиска (пробежать циклом по DataTable.Rows, DataView.Find) дает значение индекса не соответсвующего действительности так как, на сколько я понимаю, в DataTable ничего в действительности не сортируется  как определить реальный индекс? 
			 
			 Используй Datagrid.CurrentRowIndex Страница: 1 | 
 
			
 
  
		
     
  
    
Вопрос: как правильно найти индекс
     
    
Добавлено: 29.01.04 17:37
     
      
  
				
			  
					 
			
				 
    
		
       
    
Автор вопроса:  
    
  Артём Л. | ICQ: 280044491 
      
       
  
 
    
				
		
		
					 
			
				 
  
		
     
  
    
Ответы
     
    
Всего ответов: 4
     
      
  
		
	  
			 
	
		 
    
       
    
Номер ответа: 1 
      
Автор ответа:
 beast81
![]()
![]()
ICQ: 192324197 
Вопросов: 11
Ответов: 13
      
 Профиль |  | #1
       
Добавлено:  29.01.04 19:24
       
    
       
  
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 2 
      
Автор ответа:
  Артём Л.
![]()
![]()
ICQ: 280044491 
Вопросов: 43
Ответов: 227
      
 Профиль |  | #2
       
Добавлено:  29.01.04 19:53
       
    
       
  
>Используй Datagrid.CurrentRowIndex 
    
но это ж возвратит всего навсего текущий индекс
		
	  
			 
	
		 
    
       
    
Номер ответа: 3 
      
Автор ответа:
 Павел
![]()
![]()
![]()
![]()
![]()
![]()
Администратор
ICQ: 326066673 
Вопросов: 368
Ответов: 5968
      
 Web-сайт:  
 Профиль |  | #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