2016-11-25 8 views
2

DevExpressGridViewの全行をTextBoxの値に応じて選択するにはどうすればよいですか?TextBoxの値に応じて、DevExpress GridViewでフル行を選択してください。

私は、次のコードを試してみましたが、それは働いていない:コードはGRIDCONTROL内の行を選択しない

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

。 GridColumn colC_Idのテキストボックスに入力されたテキストを大文字小文字を区別して検索し、一致するものが見つかった場合、GridControlのデータソースの2番目の列(列インデックス1)のテキストが、現在選択されている行更新された値は、データソースのフィールドがGridControlのGridColumnコレクションに追加されている場合、GridControlに反映されます。ここで

はGRIDCONTROLのデータソースがDataTableのある一定の値に基づいてGRIDCONTROLで行を選択する方法の例です:

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 
関連する問題