or

RadDropDownList1.DropDownStyle = Telerik.WinControls.RadDropDownStyle.DropDownDim oTextbox As HostedTextBoxBaseoTextbox = Dropdownlist.DropDownListElement.EditableElement.TextBox.TextBoxItem.TextBoxControloTextbox.TabStop = True



using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using Telerik.WinControls.UI;using Telerik.WinControls;using Telerik.WinControls.Data;using System.Diagnostics;namespace _547099{ public partial class Form1 : Form { public Form1() { InitializeComponent(); DataTable t = new DataTable(); t.Columns.Add("ID", typeof(int)); t.Columns.Add("Name", typeof(string)); t.Rows.Add(1, "one"); t.Rows.Add(2, "two"); t.Rows.Add(3, "three"); t.Rows.Add(4, "four"); t.Rows.Add(5, "five"); t.Rows.Add(6, "six"); t.Rows.Add(7, "seven"); t.Rows.Add(8, "eight"); t.Rows.Add(9, "nine"); t.Rows.Add(10, "ten"); CustomColumn col = new CustomColumn("MutiSelect column"); col.Name = "Name"; col.DataSource = t; col.DisplayMember = "Name"; col.ValueMember = "ID"; FilterDescriptor descriptor = new FilterDescriptor("Name", FilterOperator.Contains, 0); //col.AllowFiltering = false; radGridView1.Columns.Add(col); GridViewTextBoxColumn col2 = new GridViewTextBoxColumn(); col2.Name = "Test"; radGridView1.Columns.Add(col2); radGridView1.Rows.Add(new object[] { new int[] { 9, 6, 10 }, "ab"}); radGridView1.Rows.Add(new object[] { new int[] { 5, 1, 3 }, "abcd"}); radGridView1.Rows.Add(new object[] { new int[] { 8, 7, 1 }, "ef"}); radGridView1.Rows.Add(new object[] { new int[] { 4, 2, 1 }, "fgh" }); this.radGridView1.EnableFiltering = true; this.radGridView1.ShowHeaderCellButtons = true; this.radGridView1.EnableCustomFiltering = true; this.radGridView1.CustomFiltering += new GridViewCustomFilteringEventHandler(radGridView1_CustomFiltering); this.radGridView1.CellEndEdit += new GridViewCellEventHandler(radGridView1_CellEndEdit); this.radGridView1.CellValidating += new CellValidatingEventHandler(radGridView1_CellValidating); this.radGridView1.FilterExpressionChanged += radGridView1_FilterExpressionChanged; } void radGridView1_FilterExpressionChanged(object sender, FilterExpressionChangedEventArgs e) { Debug.WriteLine("Filter geändert: " + e.FilterExpression); } void radGridView1_CellValidating(object sender, CellValidatingEventArgs e) { if (radGridView1.ActiveEditor == null ||!( e.Row is GridViewFilteringRowInfo)) return; if (e.Column.GetDefaultEditorType() == typeof(CustomDropDownListEditor)) { filterValues.Clear(); foreach (CustomListDataItem item in ((CustomEditorElement)(((CustomDropDownListEditor)(this.radGridView1.ActiveEditor)).EditorElement)).Items) { if (item.Selected) { filterValues.Add((int)item.Value); } } } } List<int> filterValues = new List<int>(); void radGridView1_CellEndEdit(object sender, GridViewCellEventArgs e) { Debug.WriteLine("Refresh"); this.radGridView1.MasterTemplate.Refresh(); } private void radGridView1_CustomFiltering(object sender, GridViewCustomFilteringEventArgs e) { if (filterValues.Count == 0) { Debug.WriteLine("FilterVal 0"); int fdi = radGridView1.FilterDescriptors.IndexOf("Name"); if (fdi != -1) { radGridView1.FilterDescriptors.RemoveAt(fdi); } } if (radGridView1.FilterDescriptors.Count == 0) { return; } if (filterValues.Count > 0) { bool shouldVisible = false; foreach (int cellValue in ((int[])e.Row.Cells["Name"].Value)) { foreach (int j in filterValues) { if (cellValue == j) { shouldVisible = true; break; } } } e.Visible = shouldVisible; } if (e.Visible) e.Handled = false; } }}
