Do you wish to correct the value?
Another "feature" of the Windows Forms DataGrid that drove me nuts for some time yesterday. Roughly speaking my problem and solution is described here: RE: [aus-dotnet] DataGrid.CurrentRowIndex vs DataGrid.CurrentCell.RowNumber
My problem also seemed to have been caused by setting the DataSource to Nothing/null, which I had done to force a refresh of the grid. As a reminder to myself, this is a better way to refresh the grid:
CType(Me.BindingContext(myGrid.DataSource), CurrencyManager).Refresh()
Also, supposedly one should use the SetDataBinding method rather than setting the DataSource at runtime. I find that strange, as the DataSource property's set statement does almost exactly the same thing as the SetDataBinding method does:
Public Sub set_DataSource(ByVal value As Object)
If (((Not value Is Nothing) AndAlso Not TypeOf value Is IList) AndAlso Not TypeOf value Is IListSource) Then
Throw New Exception(SR.GetString("BadDataSourceForComplexBinding"))
End If
If ((Me.dataSource Is Nothing) OrElse Not Me.dataSource.Equals(value)) Then
If (((value Is Nothing) OrElse (value Is Convert.DBNull)) AndAlso Not "".Equals(Me.DataMember)) Then
Me.dataSource = Nothing
Me.DataMember = ""
Else
Dim flag1 As Boolean
If (Not value Is Nothing) Then
Me.EnforceValidDataMember(value)
End If
Me.parentRows.Clear
Me.originalState = Nothing
Me.caption.BackButtonVisible = (flag1 = False)
Me.caption.DownButtonActive = (flag1 = flag1)
Me.caption.BackButtonActive = flag1
Me.caption.SetDownButtonDirection(Not Me.layout.ParentRowsVisible)
Me.Set_ListManager(value, Me.DataMember, False)
End If
End If
End Sub
vs.
Public Sub SetDataBinding(ByVal dataSource As Object, ByVal dataMember As String)
Dim flag1 As Boolean
Me.parentRows.Clear
Me.originalState = Nothing
Me.caption.BackButtonVisible = (flag1 = False)
Me.caption.DownButtonActive = (flag1 = flag1)
Me.caption.BackButtonActive = flag1
Me.caption.SetDownButtonDirection(Not Me.layout.ParentRowsVisible)
Me.Set_ListManager(dataSource, dataMember, False)
End Sub
posted by Oskar Austegard at 11:11 AM on Nov 4, 2004
"'There was an error committing the row back to the data source. Index was out of range'"
No comments yet. -