2016-11-25 6 views
2

Как выбрать полную строку на DevExpressGridView в зависимости от значения TextBox?Выберите полную строку в DevExpress GridView в зависимости от значения TextBox

Я попытался следующий код, но он не работает:

Dim rowHandle As Integer = GridView1.LocateByDisplayText(0, colC_Id, txtSelect.Text) 
If rowHandle <> DevExpress.XtraGrid.GridControl.InvalidRowHandle Then 
    Dim row As System.Data.DataRow = GridView1.GetDataRow(GridView1.FocusedRowHandle) 
    row(0) = txtSelect.EditValue 
End If 
+0

Можете ли вы форматировать код, помещая каждую команду на отдельной строка и отступы на 4 пробела. Можете ли вы уточнить, что вы пытаетесь достичь и в чем проблема. Я понимаю, что у вас есть DevExpress GridControl, и вы хотите выбрать первую строку, которая соответствует тексту, введенному в текстовое поле в той же форме. Это верно? Если да, возникает ли исключение или не выбрана строка, когда вы ожидаете ее? –

+0

Да, но строка не будет выбрана. Текстовое поле находится на одном и том же элементе управления пользователя. – Jassimi

ответ

2

Этот код не выбирает строку в GridControl. Он выполняет поиск по регистру текста, введенного в текстовое поле GridColumn colC_Id, и если совпадение найдено, текст во втором столбце (индекс столбца 1) источника данных GridControl обновляется до введенного текста в которая сейчас выбрана. Обновленное значение будет отражено в GridControl, если это поле из источника данных было добавлено в коллекцию GridColumn GridControl.

Вот пример того, как выбрать строку в GridControl на основе определенного значения, при котором источник данных в GridControl является DataTable:

Dim myDataTable As DataTable = DirectCast(GridControl1.DataSource, DataTable) 
Dim sFieldName As String = colC_Id.FieldName 
Dim sColumnName As String = colC_Id.Name 
Dim myDataRows As DataRow() = myDataTable.Select(sFieldName & "='" & TextBox1.Text.Replace("'", "''") & "'") 

If myDataRows.Length > 0 Then 
    Dim iDataSourceRowIndex As Int32 = myDataTable.IndexOf(myDataRows(0)) 
    GridView1.FocusedRowHandle = GridView1.GetRowHandle(iDataSourceRowIndex) 
Else 
    MessageBox.Show("The text '" & TextBox1.Text & "' was not found in column '" & sColumnName &"'") 
End If