Your Privacy Matters: We use our own and third-party cookies to improve your experience on our website. By continuing to use the website we understand that you accept their use. Cookie Policy
1725
Grid exception when setting a cell value in InitialzeRow
posted

I have a grid bound to a business object that consists of 2 bands. When the grid is displayed I get the Expand indicator for the second band but the items in the list are always empty even though I know that there are values in the properity fields that should be displayed.  So, since I could not figure out why this is working as it is and since I know the values I decided to try to just set them during row initialization.  I have code that looks like the following.

tastableGrid.EventManager.AllEventsEnabled = false;
TastableOptionalFields optionalFields = t.TastableOptionalFields;
foreach (Infragistics.Win.UltraWinGrid.UltraGridCell cell in e.Row.Cells)
{
    String val = optionalFields.GetValue[cell.Column.Key]; //* This returns the value for the specified cell   
    cell.SetValue(val, false); //* I've also tried just setting cell.value=val and tried "ToString" on everything without luck
}
tastableGrid.EventManager.AllEventsEnabled = true;

Because this is a child  band I was not sure if there was some issue with initializerow being fired again for some reason so I 

tried the turning all the events off but that didn't make any difference either.

I'm hoping that someone can give me a pointer here as I'm totally confused about why I can't set the value here...I'd actually like to understand why I can't get the items to display properly in the first place since all the columns for the band properties are all displayed but with no values so if anyone has a clue as to why that might be I'd appreciate that.

What I get is the following exception when I try to set one of the values to something other than null (for cases where there really is not a value)

2008-01-13 11:56:47,015 [10] FATAL MyApplication.Program [(null)] - Unhandled thread exception
System.Reflection.TargetException: Object does not match target type.
   at System.ComponentModel.ReflectPropertyDescriptor.SetValue(Object component, Object value)
   at Infragistics.Win.UltraWinGrid.UltraGridRow.SetCellValue(UltraGridColumn column, Object val, Boolean suppressErrorMessagePrompt, Boolean throwExceptionOnError)
   at Infragistics.Win.UltraWinGrid.UltraGridCell.SetValueInternal(Object value, Boolean suppressErrorMessagePrompt, Boolean fireInitializeRow, Boolean throwExceptionOnError)
   at Infragistics.Win.UltraWinGrid.UltraGridCell.set_Value(Object value)
   at Infragistics.Win.UltraWinGrid.UltraGridCell.SetValue(Object value, Boolean storeInUndoStatck)
   at TastingMaster.TastingResultsTable.tastableGrid_InitializeRow(Object sender, InitializeRowEventArgs e) in D:\MyApplication\Source\Master\Master\ResultsTable.cs:line 1387
   at Infragistics.Win.UltraWinGrid.UltraGrid.OnInitializeRow(InitializeRowEventArgs e)
   at Infragistics.Win.UltraWinGrid.UltraGrid.FireEvent(GridEventIds id, EventArgs e)
   at Infragistics.Win.UltraWinGrid.UltraGrid.FireInitializeRow(InitializeRowEventArgs e)
   at Infragistics.Win.UltraWinGrid.UltraGridRow.FireInitializeRow()
   at Infragistics.Win.UltraWinGrid.RowsCollection.FireInitializeRow(IList rows)
   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.EnsureFiltersEvaluated()
   at Infragistics.Win.UltraWinGrid.ScrollCountManagerSparseArray.VerifyAgainstScrollVersion()
   at Infragistics.Win.UltraWinGrid.RowsCollection.GetVisibleRowCount(IncludeRowTypes includeRowTypes)
   at Infragistics.Win.UltraWinGrid.UltraGridRow.HasChild(UltraGridBand band, Boolean excludeHidden, IncludeRowTypes includeRowTypes)
   at Infragistics.Win.UltraWinGrid.UltraGridRow.HasChild(Boolean excludeHidden, IncludeRowTypes includeRowTypes)
   at Infragistics.Win.UltraWinGrid.PreRowAreaUIElement.DrawForeground(UIElementDrawParams& drawParams)
   at Infragistics.Win.UIElement.DrawElement(UIElementDrawParams& defaultDrawParams)
   at Infragistics.Win.UIElement.DrawChildElements(UIElementDrawParams& drawParams)
   at Infragistics.Win.UIElement.DrawElement(UIElementDrawParams& defaultDrawParams)
   at Infragistics.Win.UIElement.DrawChildElements(UIElementDrawParams& drawParams)
   at Infragistics.Win.UIElement.DrawElement(UIElementDrawParams& defaultDrawParams)
   at Infragistics.Win.UIElement.DrawChildElements(UIElementDrawParams& drawParams)
   at Infragistics.Win.UIElement.DrawElement(UIElementDrawParams& defaultDrawParams)
   at Infragistics.Win.UIElement.DrawChildElements(UIElementDrawParams& drawParams)
   at Infragistics.Win.UIElement.DrawElement(UIElementDrawParams& defaultDrawParams)
   at Infragistics.Win.UIElement.DrawHelper(Graphics graphics, Rectangle invalidRectangle, Boolean doubleBuffer, AlphaBlendMode alphaBlendMode, Boolean clipText, Boolean forceDrawAsFocused, Boolean preventAlphaBlendGraphics)
   at Infragistics.Win.UIElement.Draw(Graphics graphics, Rectangle invalidRectangle, Boolean doubleBuffer, AlphaBlendMode alphaBlendMode, Boolean forceDrawAsFocused, Boolean preventAlphaBlendGraphics)
   at Infragistics.Win.ControlUIElementBase.Draw(Graphics graphics, Rectangle invalidRectangle, Boolean doubleBuffer, AlphaBlendMode alphaBlendMode, Size elementSize, Boolean preventAlphaBlendGraphics)
   at Infragistics.Win.ControlUIElementBase.Draw(Graphics graphics, Rectangle invalidRectangle, Boolean doubleBuffer, AlphaBlendMode alphaBlendMode, Size elementSize)
   at Infragistics.Win.ControlUIElementBase.Draw(Graphics graphics, Rectangle invalidRectangle, Boolean doubleBuffer, AlphaBlendMode alphaBlendMode)
   at Infragistics.Win.UltraWinGrid.UltraGridUIElement.Draw(Graphics graphics, Rectangle invalidRectangle, Boolean doubleBuffer, AlphaBlendMode alphaBlendMode)
   at Infragistics.Win.UltraControlBase.OnPaint(PaintEventArgs pe)
   at Infragistics.Win.UltraWinGrid.UltraGrid.OnPaint(PaintEventArgs pe)
   at System.Windows.Forms.Control.PaintWithErrorHandling(PaintEventArgs e, Int16 layer, Boolean disposeEventArgs)
   at System.Windows.Forms.Control.WmPaint(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)
 

Parents
No Data
Reply
  • 469350
    Verified Answer
    Offline posted

     Hi Neil,

        According to the error message here, the grid is not raising the exception. The Eception is being raised by the property descriptor - so that means tha data source itself is blowing up because the field is being set to the wrong data type. So that field must not accept strings. 

Children