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 件のコメント:
コメントを投稿