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