I have a RadGridView with a GridViewMultiComboBoxColumn in it.
The GridView that pops up is working properly, and I have the columns I want to display, however, the ValueMember is set to a property that is a Guid type. The entire column is bound to a Guid value, and the comboboxes are displaying a different value. So far so good.
The problem comes when I want to filter the grid by this Guid value. I get various ParserExceptions, and they differ from Guid to Guid, based on the actual Guid. One example is the following:
"Missing operator before c0aee operand."
This is happening on a Guid whose value is 986c0aee-4987-4384-b8e6-551b2fb7a41e.
I've pasted the stack trace below, and at it's root, it appears to be trying to set an expression that looks like this:
AssetID = 986c0aee-4987-4384-b8e6-551b2fb7a41e
Obviously, the parser is viewing the Guid as an arithmetic expression. How can I fix this so that it will add the single quote properly? I've been working on this for a while, and it's driving me nuts.
I'm adding the columns within the GridView using the following solution:
http://www.telerik.com/help/winforms/gridviewmulticomboboxcolumn.html
Telerik.WinControls.dll!Telerik.Data.Expressions.ExpressionParser.Parse() + 0xe6 bytes
Telerik.WinControls.dll!Telerik.Data.Expressions.ExpressionParser.Parse(string expression = "AssetID = 986c0aee-4987-4384-b8e6-551b2fb7a41e", bool caseSensitiveLike = false) + 0x14a bytes
Telerik.WinControls.dll!Telerik.WinControls.Data.RadCollectionView<Telerik.WinControls.UI.GridViewRowInfo>.FilterExpression.set(string value = "AssetID = 986c0aee-4987-4384-b8e6-551b2fb7a41e") + 0x1ca bytes
Telerik.WinControls.GridView.dll!Telerik.WinControls.UI.GridViewFilterDescriptorCollection.ApplyFilter() + 0x40 bytes
Telerik.WinControls.GridView.dll!Telerik.WinControls.UI.GridViewFilterDescriptorCollection.OnCollectionChanged(Telerik.WinControls.Data.NotifyCollectionChangedEventArgs args = {Telerik.WinControls.Data.NotifyCollectionChangedEventArgs}) + 0x4b bytes
Telerik.WinControls.GridView.dll!Telerik.WinControls.UI.GridViewFilterDescriptorCollection.Item_PropertyChanged(object sender = {AssetID = 986c0aee-4987-4384-b8e6-551b2fb7a41e}, System.ComponentModel.PropertyChangedEventArgs e = {System.ComponentModel.PropertyChangedEventArgs}) + 0x63 bytes
Telerik.WinControls.dll!Telerik.WinControls.Data.FilterDescriptor.OnPropertyChanged(System.ComponentModel.PropertyChangedEventArgs e = {System.ComponentModel.PropertyChangedEventArgs}) + 0x3d bytes
Telerik.WinControls.dll!Telerik.WinControls.Data.FilterDescriptor.OnPropertyChanged(string propertyName = "Value") + 0x3d bytes
> Telerik.WinControls.dll!Telerik.WinControls.Data.FilterDescriptor.Value.set(object value = {986c0aee-4987-4384-b8e6-551b2fb7a41e}) + 0x4d bytes
Telerik.WinControls.GridView.dll!Telerik.WinControls.UI.GridViewFilteringRowInfo.this[Telerik.WinControls.UI.GridViewColumn].set(Telerik.WinControls.UI.GridViewColumn column = {Asset (GridViewMultiComboBoxColumn)}, object value = {986c0aee-4987-4384-b8e6-551b2fb7a41e}) + 0x90 bytes
Telerik.WinControls.GridView.dll!Telerik.WinControls.UI.GridDataCellElement.Value.set(object value = {986c0aee-4987-4384-b8e6-551b2fb7a41e}) + 0x85 bytes
Telerik.WinControls.GridView.dll!Telerik.WinControls.UI.GridFilterCellElement.Editor_ValueChanged(object sender = {Telerik.WinControls.UI.RadMultiColumnComboBoxElement}, System.EventArgs e = {System.EventArgs}) + 0x173 bytes
Telerik.WinControls.UI.dll!Telerik.WinControls.UI.EditorBaseElement.OnValueChanged(System.EventArgs args = {System.EventArgs}) + 0xb9 bytes
Telerik.WinControls.UI.dll!Telerik.WinControls.UI.EditorBaseElement.OnTextChanged(System.EventArgs e = {System.EventArgs}) + 0x48 bytes
Telerik.WinControls.UI.dll!Telerik.WinControls.UI.BaseComboBoxElement.CallOnTextChanged(System.EventArgs e = {System.EventArgs}) + 0x28 bytes
Telerik.WinControls.GridView.dll!Telerik.WinControls.UI.RadMultiColumnComboBoxElement.SetText(string text = "Roll-off Bin 51095-AR") + 0x85 bytes
Telerik.WinControls.GridView.dll!Telerik.WinControls.UI.RadMultiColumnComboBoxElement.SyncTextWithItem() + 0x1a4 bytes
Telerik.WinControls.GridView.dll!Telerik.WinControls.UI.RadMultiColumnComboBoxElement.OnGrid_CurrentRowChanged(object sender = {Telerik.WinControls.UI.MultiColumnComboGridView}, Telerik.WinControls.UI.CurrentRowChangedEventArgs e = {Telerik.WinControls.UI.CurrentRowChangedEventArgs}) + 0x22 bytes
Telerik.WinControls.GridView.dll!Telerik.WinControls.UI.RadGridView.OnCurrentRowChanged(object sender = {Telerik.WinControls.UI.MasterGridViewTemplate}, Telerik.WinControls.UI.CurrentRowChangedEventArgs e = {Telerik.WinControls.UI.CurrentRowChangedEventArgs}) + 0x43 bytes
Telerik.WinControls.GridView.dll!Telerik.WinControls.UI.EventDispatcher.RaiseEvent<Telerik.WinControls.UI.CurrentRowChangedEventArgs>(object eventKey = {object}, object sender = {Telerik.WinControls.UI.MasterGridViewTemplate}, Telerik.WinControls.UI.CurrentRowChangedEventArgs args = {Telerik.WinControls.UI.CurrentRowChangedEventArgs}) + 0xf4 bytes
Telerik.WinControls.GridView.dll!Telerik.WinControls.UI.MasterGridViewTemplate.ChangeCurrentRow(Telerik.WinControls.UI.GridViewRowInfo oldRow = null, Telerik.WinControls.UI.GridViewRowInfo row = {Telerik.WinControls.UI.GridViewDataRowInfo}, Telerik.WinControls.UI.GridViewTemplate viewTemplate = {Telerik.WinControls.UI.MasterGridViewTemplate}) + 0x21c bytes
Telerik.WinControls.GridView.dll!Telerik.WinControls.UI.MasterGridViewTemplate.SetPositionCore(Telerik.WinControls.UI.GridViewRowInfo newRow = {Telerik.WinControls.UI.GridViewDataRowInfo}, Telerik.WinControls.UI.GridViewColumn newColumn = {AssetNumber (GridViewTextBoxColumn)}, Telerik.WinControls.UI.GridViewRowInfo oldRow = null, Telerik.WinControls.UI.GridViewColumn oldColumn = {AssetName (GridViewTextBoxColumn)}, bool validateRowChange = true) + 0xdc bytes
Telerik.WinControls.GridView.dll!Telerik.WinControls.UI.MasterGridViewTemplate.SetPosition(Telerik.WinControls.UI.GridViewRowInfo row = {Telerik.WinControls.UI.GridViewDataRowInfo}, Telerik.WinControls.UI.GridViewColumn column = {AssetNumber (GridViewTextBoxColumn)}, bool validateRowChange = true) + 0x105 bytes
Telerik.WinControls.GridView.dll!Telerik.WinControls.UI.MasterGridViewTemplate.ProcessCurrentChanged(Telerik.WinControls.UI.GridViewEvent eventData = {Telerik.WinControls.UI.GridViewEvent}) + 0x19a bytes
Telerik.WinControls.GridView.dll!Telerik.WinControls.UI.MasterGridViewTemplate.ProcessEventCore(Telerik.WinControls.UI.GridViewEvent eventData = {Telerik.WinControls.UI.GridViewEvent}) + 0x6a bytes
Telerik.WinControls.GridView.dll!Telerik.WinControls.UI.GridViewTemplate.Telerik.WinControls.UI.IGridViewEventListener.ProcessEvent(Telerik.WinControls.UI.GridViewEvent eventData = {Telerik.WinControls.UI.GridViewEvent}) + 0x28 bytes
Telerik.WinControls.GridView.dll!Telerik.WinControls.UI.GridViewEventProcessEntity.ProcessCollection(Telerik.WinControls.UI.GridViewEvent gridEvent = {Telerik.WinControls.UI.GridViewEvent}, Telerik.WinControls.UI.PriorityWeakReferenceList list = {Telerik.WinControls.UI.PriorityWeakReferenceList}, Telerik.WinControls.UI.GridEventProcessMode processMode = Process) + 0xe0 bytes
Telerik.WinControls.GridView.dll!Telerik.WinControls.UI.GridViewEventProcessEntity.ProcessEvent(Telerik.WinControls.UI.GridViewEvent gridEvent = {Telerik.WinControls.UI.GridViewEvent}) + 0x51 bytes
Telerik.WinControls.GridView.dll!Telerik.WinControls.UI.GridViewSynchronizationService.NotifyListeners(Telerik.WinControls.UI.GridViewEvent gridEvent = {Telerik.WinControls.UI.GridViewEvent}) + 0x68 bytes
Telerik.WinControls.GridView.dll!Telerik.WinControls.UI.GridViewSynchronizationService.FlushEvents() + 0x1c8 bytes
Telerik.WinControls.GridView.dll!Telerik.WinControls.UI.GridViewSynchronizationService.DispatchEvent(Telerik.WinControls.UI.GridViewEvent gridEvent = {Telerik.WinControls.UI.GridViewEvent}) + 0xbc bytes
Telerik.WinControls.GridView.dll!Telerik.WinControls.UI.GridViewSynchronizationService.RaiseCurrentChanged(Telerik.WinControls.UI.GridViewTemplate template = {Telerik.WinControls.UI.MasterGridViewTemplate}, Telerik.WinControls.UI.GridViewRowInfo row = {Telerik.WinControls.UI.GridViewDataRowInfo}, Telerik.WinControls.UI.GridViewColumn column = {AssetNumber (GridViewTextBoxColumn)}, bool user = true) + 0x149 bytes
Telerik.WinControls.GridView.dll!Telerik.WinControls.UI.BaseGridNavigator.SelectCore(Telerik.WinControls.UI.GridViewRowInfo row = {Telerik.WinControls.UI.GridViewDataRowInfo}, Telerik.WinControls.UI.GridViewColumn column = {AssetNumber (GridViewTextBoxColumn)}) + 0xa1 bytes
Telerik.WinControls.GridView.dll!Telerik.WinControls.UI.BaseGridNavigator.Select(Telerik.WinControls.UI.GridViewRowInfo row = {Telerik.WinControls.UI.GridViewDataRowInfo}, Telerik.WinControls.UI.GridViewColumn column = {AssetNumber (GridViewTextBoxColumn)}) + 0x137 bytes
Telerik.WinControls.GridView.dll!Telerik.WinControls.UI.GridRowBehavior.SelectPositionOnMouseDownLeft(System.Windows.Forms.MouseEventArgs e = {X = 128 Y = 121 Button = Left}, Telerik.WinControls.UI.GridRowElement rowElement = {Telerik.WinControls.UI.GridDataRowElement}, Telerik.WinControls.UI.GridCellElement cellElement = {Telerik.WinControls.UI.GridDataCellElement}) + 0x20d bytes
Telerik.WinControls.GridView.dll!Telerik.WinControls.UI.GridRowBehavior.OnMouseDownLeft(System.Windows.Forms.MouseEventArgs e = {X = 128 Y = 121 Button = Left}) + 0x35c bytes
Telerik.WinControls.GridView.dll!Telerik.WinControls.UI.GridRowBehavior.OnMouseDown(System.Windows.Forms.MouseEventArgs e = {X = 128 Y = 121 Button = Left}) + 0xed bytes
Telerik.WinControls.GridView.dll!Telerik.WinControls.UI.BaseGridBehavior.OnMouseDown(System.Windows.Forms.MouseEventArgs e = {X = 128 Y = 121 Button = Left}) + 0xe7 bytes
Telerik.WinControls.GridView.dll!Telerik.WinControls.UI.RadGridView.OnMouseDown(System.Windows.Forms.MouseEventArgs e = {X = 128 Y = 121 Button = Left}) + 0x45 bytes
System.Windows.Forms.dll!System.Windows.Forms.Control.WmMouseDown(ref System.Windows.Forms.Message m, System.Windows.Forms.MouseButtons button, int clicks) Line 12945 C#