DataGridViewの4行目に当たるDataTableの行を取得したい、とかやりたい時ありますよね。
通常はそのまま同じ4行目が対応する行になるのですが、
ソートをしてしまうとDataGridViewはソートされますが、DataTableはソートされず、
行番号が食い違うようになってしまいます。
その場合、下記関数をご利用ください。
#Region "DataGridViewのRowIndexからDataTableのDataRowを取得する"
'''
''' DataGridViewのRowIndexからDataTableのDataRowを取得する
'''
''' '''
''' ソート時など、DataGridViewのRowIndexが必ずしもDataTableのRowIndexとマッチしないため
Public Function GetDataRow_ByDataGridViewRowIdx(ByVal RowIdx As Integer) As DataRow
Try
If Me.Rows(RowIdx).DataBoundItem Is Nothing Then
Return Nothing
End If
Catch ex As IndexOutOfRangeException
Return Nothing
End Try
Dim Dr As DataRow
Dim Drv As DataRowView = CType(Me.Rows(RowIdx).DataBoundItem, System.Data.DataRowView)
Dr = CType(Drv.Row, System.Data.DataRow)
Return Dr
End Function
#End Region
対応するDataRowが取得できます。
これで行移動時に値の編集するなど、DataRowをいじっちゃってください。
0 件のコメント:
コメントを投稿