Hi
I'm trying to use the MultiColumn ComboBox to allow users to search and select values from a flat table on the database, just it's not working and I've spent already the entire day trying combinations without success.
This is the Class being binded:
public class DocumentType { public int id { get; set; } public string Code { get; set; } public string Label { get; set; } public string Description { get; set; } }This is the Designe.cs code:
// // cmbDocumentType// this.cmbDocumentType.AutoScroll = true;this.cmbDocumentType.AutoSize = true;this.cmbDocumentType.AutoSizeDropDownToBestFit = true;// // cmbDocumentType.NestedRadGridView// this.cmbDocumentType.EditorControl.AutoScroll = true;this.cmbDocumentType.EditorControl.BackColor = System.Drawing.SystemColors.Window;this.cmbDocumentType.EditorControl.Cursor = System.Windows.Forms.Cursors.Default;this.cmbDocumentType.EditorControl.EnableFastScrolling = true;this.cmbDocumentType.EditorControl.EnableGestures = false;this.cmbDocumentType.EditorControl.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F);this.cmbDocumentType.EditorControl.ForeColor = System.Drawing.SystemColors.ControlText;this.cmbDocumentType.EditorControl.ImeMode = System.Windows.Forms.ImeMode.NoControl;this.cmbDocumentType.EditorControl.Location = new System.Drawing.Point(0, 0); gridViewTextBoxColumn1.EnableExpressionEditor = false;gridViewTextBoxColumn1.FieldName = "Code";gridViewTextBoxColumn1.HeaderText = "Code";gridViewTextBoxColumn1.Name = "Code";gridViewTextBoxColumn1.Width = 58;gridViewTextBoxColumn2.EnableExpressionEditor = false;gridViewTextBoxColumn2.FieldName = "Label";gridViewTextBoxColumn2.HeaderText = "Label";gridViewTextBoxColumn2.Name = "Label";gridViewTextBoxColumn2.Width = 112;gridViewTextBoxColumn3.EnableExpressionEditor = false;gridViewTextBoxColumn3.FieldName = "Description";gridViewTextBoxColumn3.HeaderText = "Description";gridViewTextBoxColumn3.Name = "Description";gridViewTextBoxColumn3.Width = 357;this.cmbDocumentType.EditorControl.Columns.AddRange(new Telerik.WinControls.UI.GridViewDataColumn[] {gridViewTextBoxColumn1,gridViewTextBoxColumn2,gridViewTextBoxColumn3});// // // this.cmbDocumentType.EditorControl.AllowAddNewRow = false;this.cmbDocumentType.EditorControl.AllowCellContextMenu = false;this.cmbDocumentType.EditorControl.AllowColumnChooser = false;this.cmbDocumentType.EditorControl.AllowColumnReorder = false;this.cmbDocumentType.EditorControl.AllowDeleteRow = false;this.cmbDocumentType.EditorControl.AllowDragToGroup = false;this.cmbDocumentType.EditorControl.AllowEditRow = false;this.cmbDocumentType.EditorControl.AutoGenerateColumns = false;this.cmbDocumentType.EditorControl.AutoSizeColumnsMode = Telerik.WinControls.UI.GridViewAutoSizeColumnsMode.Fill;this.cmbDocumentType.EditorControl.EnableFiltering = true;this.cmbDocumentType.EditorControl.EnableGrouping = false;this.cmbDocumentType.EditorControl.EnableSorting = false;this.cmbDocumentType.EditorControl.ShowFilteringRow = false;//this.cmbDocumentType.EditorControl.ViewDefinition = tableViewDefinition1;this.cmbDocumentType.EditorControl.Name = "NestedRadGridView";this.cmbDocumentType.EditorControl.NewRowEnterKeyMode = Telerik.WinControls.UI.RadGridViewNewRowEnterKeyMode.None;this.cmbDocumentType.EditorControl.ReadOnly = true;this.cmbDocumentType.EditorControl.RightToLeft = System.Windows.Forms.RightToLeft.No;this.cmbDocumentType.EditorControl.ShowGroupPanel = false;this.cmbDocumentType.EditorControl.Size = new System.Drawing.Size(545, 31);this.cmbDocumentType.EditorControl.TabIndex = 0;this.cmbDocumentType.EnableAnalytics = false;this.cmbDocumentType.EnableGestures = false;this.cmbDocumentType.Location = new System.Drawing.Point(202, 7);this.cmbDocumentType.Name = "cmbDocumentType";this.cmbDocumentType.ShowItemToolTips = false;this.cmbDocumentType.Size = new System.Drawing.Size(271, 20);this.cmbDocumentType.TabIndex = 4;this.cmbDocumentType.TabStop = false;this.cmbDocumentType.ThemeName = "Office2007Black";this.cmbDocumentType.UseCompatibleTextRendering = false;And this is the code right at the end of the form's constructor:
this.cmbDocumentType.AutoFilter = true;CompositeFilterDescriptor compositeFilter = new CompositeFilterDescriptor();compositeFilter.LogicalOperator = FilterLogicalOperator.Or;FilterDescriptor fdLabel = new FilterDescriptor("Label", FilterOperator.Contains, string.Empty);compositeFilter.FilterDescriptors.Add(fdLabel);FilterDescriptor fdDescription = new FilterDescriptor("Description", FilterOperator.Contains, string.Empty);compositeFilter.FilterDescriptors.Add(fdDescription);FilterDescriptor fdCode = new FilterDescriptor("Code", FilterOperator.Contains, string.Empty);compositeFilter.FilterDescriptors.Add(fdCode);this.cmbDocumentType.EditorControl.FilterDescriptors.Add(compositeFilter);RadGridView gridViewControl = this.cmbDocumentType.EditorControl;gridViewControl.MasterTemplate.AutoGenerateColumns = false;this.cmbDocumentType.MultiColumnComboBoxElement.DropDownAnimationEnabled = false;Later on, if by user input the combo is required, then I'm binding the data (list of DocumentType) from MemoryCache:
if (this.cmbDocumentType.DataSource == null) { this.cmbDocumentType.DataSource = Globals.Cache.GetMobileDocumentTypes(); this.cmbDocumentType.Text = string.Empty; } }I don't know what's wrong, I've followed by the letter the documentation from here and still doesn't work.
- Could you please tell me what's wrong?
- Also, how can I highlight on the grid the text that the user has typed?
- Can be changed the sort order once there is a match, let's say of 5 items containing the same text but a "SortPriority" property?
Thank you for your time,
Alejandro
