Hi I am facing this exception when I am going to assign data source to grid.
Please tell.
I am using ultradatasource and here is the code.
foreach (ColumnInfo colinfo in ColumnCollections) { this.ultraDataSource.Band.Columns.Add(colinfo.GetColumnKey(), Type.GetType("System.String")); }
this.ultraDataSource.Rows.SetCount(GetRowCount()); this.resultsGrid.DisplayLayout.LoadStyle = LoadStyle.LoadOnDemand; this.resultsGrid.DataSource = this.ultraDataSource; at this line below exceptionoccurs.
This happens when I am laoding file above 1000000
This is exception text.
{System.IndexOutOfRangeException: Index was outside the bounds of the array. at Infragistics.Shared.SparseArray.InsertRange(Int32 index, ICollection items) at Infragistics.Shared.SparseArray.AddRange(ICollection items) at Infragistics.Win.UltraWinGrid.RowsCollection.InitNonGroupByRows(IList fireInitializeRowOnTheseRows) at Infragistics.Win.UltraWinGrid.RowsCollection.SyncRowsHelper(IList boundList) at Infragistics.Win.UltraWinGrid.RowsCollection.SyncRows() at Infragistics.Win.UltraWinGrid.RowsCollection.EnsureNotDirty() at Infragistics.Win.UltraWinGrid.RowsCollection.get_Count() at Infragistics.Win.UltraWinGrid.UltraGridBand.GetRowSelectorNumberWidth() at Infragistics.Win.UltraWinGrid.UltraGridLayout.GetRowSelectorWidthDefault(UltraGridBand band) at Infragistics.Win.UltraWinGrid.UltraGridBand.get_RowSelectorWidthResolved() at Infragistics.Win.UltraWinGrid.UltraGridBand.get_RowSelectorExtent() at Infragistics.Win.UltraWinGrid.ColumnHeader.get_RowSelectorExtent() at Infragistics.Win.UltraWinGrid.ColumnHeader.get_Extent() at Infragistics.Win.UltraWinGrid.UltraGridBand.CalculateBandMetrics(UltraGridBand priorBand) at Infragistics.Win.UltraWinGrid.BandsCollection.CalculateBandMetrics(Int32 pass) at Infragistics.Win.UltraWinGrid.BandsCollection.CalculateBandMetrics() at Infragistics.Win.UltraWinGrid.ColScrollRegionsCollection.InitializeMetricsHelper() at Infragistics.Win.UltraWinGrid.ColScrollRegionsCollection.InitializeMetrics() at Infragistics.Win.UltraWinGrid.UltraGridLayout.ApplyLoadedBands() at Infragistics.Win.UltraWinGrid.UltraGridLayout.ListManagerUpdated(BindingManagerBase bindingManager) at Infragistics.Win.UltraWinGrid.UltraGridLayout.ListManagerUpdated() at Infragistics.Win.UltraWinGrid.UltraGridBase.Set_ListManager(Object newDataSource, String newDataMember) at Infragistics.Win.UltraWinGrid.UltraGridBase.set_DataSource(Object value) at Thomson.Financial.Framework.Data.MarketQA.QalResultView.ResetGridBinding()
Hi Syed,
There's not much here to go on.
What version of the grid are you using? Do you have the latest Hot Fix? I remember some problems with the SparseArray that were fixed a long time ago, so maybe you are using an old version.
Another reason for an error like this is if your application is using multiple threads and you are trying to bind across the threads.
(Version 9.2.20092.2035)
I am getting a similar intermittent error. I have a worker thread on the form but it only loads a list of data that is marshaled back to the main thread. The worker thread exits immediately after returning the data. I have run the code by a couple other people who can find no problem with it and I also tried setting a breakpoint in the code where I am adding the rows to the ultradatasource and verified that it is running in the main thread.
My code is very simple:
foreach (var x in r.Results){ultraDataSource1.Rows.Add(x.ToArray());}
2/8/2010 7:26:29 AM System.IndexOutOfRangeException: Index was outside the bounds of the array. at Infragistics.Shared.SparseArray.InsertRange(Int32 index, ICollection items) at Infragistics.Shared.SparseArray.AddRange(ICollection items) at Infragistics.Win.UltraWinGrid.RowsCollection.InitNonGroupByRows(IList fireInitializeRowOnTheseRows) at Infragistics.Win.UltraWinGrid.RowsCollection.SyncRowsHelper(IList boundList) at Infragistics.Win.UltraWinGrid.RowsCollection.SyncRows() at Infragistics.Win.UltraWinGrid.RowsCollection.EnsureNotDirty() at Infragistics.Win.UltraWinGrid.ScrollCountManagerSparseArray.VerifyAgainstScrollVersion() at Infragistics.Win.UltraWinGrid.ScrollCountManagerSparseArray.GetItemAtVisibleIndex(Int32 visibleIndex) at Infragistics.Win.UltraWinGrid.RowsCollection.GetRowAtVisibleIndex(Int32 visibleIndex, Boolean includeSpecialRows) at Infragistics.Win.UltraWinGrid.RowsCollection.GetFirstVisibleRow() at Infragistics.Win.UltraWinGrid.RowScrollRegion.get_FirstRow() at Infragistics.Win.UltraWinGrid.RowScrollRegion.GetMaxScrollPosition(Boolean scrollToFill) at Infragistics.Win.UltraWinGrid.RowScrollRegion.EnsureScrollRegionFilled(Boolean calledFromRegenerateVisibleRows) at Infragistics.Win.UltraWinGrid.RowScrollRegion.RegenerateVisibleRows(Boolean resetScrollInfo) at Infragistics.Win.UltraWinGrid.RowScrollRegion.WillScrollbarBeShown(ScrollbarVisibility assumeColScrollbarsVisible) at Infragistics.Win.UltraWinGrid.RowScrollRegion.PositionScrollbar(Boolean resetScrollInfo) at Infragistics.Win.UltraWinGrid.ScrollRegionBase.SetOriginAndExtent(Int32 origin, Int32 extent) at Infragistics.Win.UltraWinGrid.RowScrollRegion.SetOriginAndExtent(Int32 origin, Int32 extent) at Infragistics.Win.UltraWinGrid.DataAreaUIElement.ResizeRowScrollRegions() at Infragistics.Win.UltraWinGrid.DataAreaUIElement.PositionChildElements() at Infragistics.Win.UIElement.VerifyChildElements(ControlUIElementBase controlElement, Boolean recursive) at Infragistics.Win.UltraWinGrid.DataAreaUIElement.VerifyChildElements(ControlUIElementBase controlElement, Boolean recursive) at Infragistics.Win.UltraWinGrid.DataAreaUIElement.set_Rect(Rectangle value) at Infragistics.Win.UltraWinGrid.UltraGridUIElement.PositionChildElements() at Infragistics.Win.UIElement.VerifyChildElements(ControlUIElementBase controlElement, Boolean recursive) at Infragistics.Win.UltraWinGrid.UltraGridUIElement.VerifyChildElements(ControlUIElementBase controlElement, Boolean recursive) at Infragistics.Win.UIElement.VerifyChildElements(Boolean recursive) at Infragistics.Win.ControlUIElementBase.VerifyIfElementsChanged(Boolean verify, Boolean syncMouseEntered) at Infragistics.Win.ControlUIElementBase.get_CurrentCursor() at Infragistics.Win.UltraControlBase.get_Cursor() at System.Windows.Forms.Control.WmSetCursor(Message& m) at System.Windows.Forms.Control.WndProc(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
I met similar problem in 2007 Vol.1