Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Вопрос по DataTable (VB.Net) Добавлено: 24.09.03 09:52  

Автор вопроса:  Alex3 | ICQ: 9481061 

Как узнать значения полей текущей записи в DataTable?

Собственно, есть DataTable, там 2 поля ID и текстовое. На гриде, основоном на этом поле отображается только текстовое поле. Щелкая по гриду, я должен знать значение поля ID текущей записи. Как это узнать?

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

Ответить

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

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



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

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #1
Добавлено: 24.09.03 11:00
Я пользуюсь такими функциями:

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

Public Function GetRow(ByVal Grid As DataGrid, ByVal ID As Integer) As DataRow
' Получаем связного и приводим его к его же типу
Dim cm As CurrencyManager = CType(Grid.BindingContext(Grid.DataSource, Grid.DataMember), CurrencyManager)
' Получаем вид данных нашего грида
Dim dv As DataView = CType(cm.List, DataView)
' Из него берем перекрытое представление ряда по ПЕРЕКРЫТОМУ ЖЕ номеру
Dim drv As DataRowView = dv(ID)
' Наконец, из перекрышки высасываем САМ РЯД
Return drv.Row

End Function

Функция GetCurrentRow возвращает текущую запись Grid'а, указанного в
параметре. А функция GetRow возвращает запись из грида по номеру
записи.

Ответить

Номер ответа: 2
Автор ответа:
 Alex3



ICQ: 9481061 

Вопросов: 18
Ответов: 132
 Профиль | | #2 Добавлено: 24.09.03 12:25

Большое спасибо, но, блин, какое же извращение:-((

Кстати, посоветовал бы тебе передовать Grid по ссылке, т.е. ByRef Grid As DataGrid. Быстрее должно быть.

Ответить

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



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

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #3
Добавлено: 24.09.03 12:57
> Кстати, посоветовал бы тебе передовать Grid по ссылке

Спасибо... Я на это не обратил внимания (редактор сам ByVal
подставляет).

Ответить

Страница: 1 |

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



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