diff --git a/PermanentDropDownListEditorInFilterCell/Description.md b/PermanentDropDownListEditorInFilterCell/Description.md new file mode 100644 index 0000000..0da5c57 --- /dev/null +++ b/PermanentDropDownListEditorInFilterCell/Description.md @@ -0,0 +1,16 @@ +## Environment + + + + + + + + + +
Product Version2018.1 220
ProductRadGridView for WinForms
+ + +## Description + +This solution provides a C# and a VB.NET project demonstrating how to embed a permanent **RadDropDownListElement** to manage filtering. A complete step by step tutorial is available in the [Permanent editor in a filter cell](https://docs.telerik.com/devtools/winforms/knowledge-base/gridview-permanenteditor-in-filter-cell) article. diff --git a/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCell.sln b/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCell.sln new file mode 100644 index 0000000..b891886 --- /dev/null +++ b/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCell.sln @@ -0,0 +1,26 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2012 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PermanentDropDownListEditorInFilterCellCSharp", "PermanentDropDownListEditorInFilterCell\PermanentDropDownListEditorInFilterCellCSharp.csproj", "{E38D7BD8-C198-4AAA-A4E1-9907F1FBA46F}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PermanentDropDownListEditorInFilterCellVB", "PermanentDropDownListEditorInFilterCellVB\PermanentDropDownListEditorInFilterCellVB.vbproj", "{51557AE9-2CCF-484C-BC3E-B7B147619081}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x86 = Debug|x86 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {E38D7BD8-C198-4AAA-A4E1-9907F1FBA46F}.Debug|x86.ActiveCfg = Debug|x86 + {E38D7BD8-C198-4AAA-A4E1-9907F1FBA46F}.Debug|x86.Build.0 = Debug|x86 + {E38D7BD8-C198-4AAA-A4E1-9907F1FBA46F}.Release|x86.ActiveCfg = Release|x86 + {E38D7BD8-C198-4AAA-A4E1-9907F1FBA46F}.Release|x86.Build.0 = Release|x86 + {51557AE9-2CCF-484C-BC3E-B7B147619081}.Debug|x86.ActiveCfg = Debug|x86 + {51557AE9-2CCF-484C-BC3E-B7B147619081}.Debug|x86.Build.0 = Debug|x86 + {51557AE9-2CCF-484C-BC3E-B7B147619081}.Release|x86.ActiveCfg = Release|x86 + {51557AE9-2CCF-484C-BC3E-B7B147619081}.Release|x86.Build.0 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCell.suo b/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCell.suo new file mode 100644 index 0000000..75b67bc Binary files /dev/null and b/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCell.suo differ diff --git a/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCell.v11.suo b/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCell.v11.suo new file mode 100644 index 0000000..2f7c7ca Binary files /dev/null and b/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCell.v11.suo differ diff --git a/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCell/CustomColumn.cs b/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCell/CustomColumn.cs new file mode 100644 index 0000000..f03d15c --- /dev/null +++ b/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCell/CustomColumn.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Text; +using Telerik.WinControls.UI; + +namespace PermanentDropDownListEditorInFilterCell +{ + class CustomColumn : GridViewTextBoxColumn + { + public override Type GetCellType(GridViewRowInfo row) + { + if (row is GridViewFilteringRowInfo) + { + return typeof(DropDownGridFilterCellElement); + } + return base.GetCellType(row); + } + } +} \ No newline at end of file diff --git a/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCell/DropDownGridFilterCellElement.cs b/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCell/DropDownGridFilterCellElement.cs new file mode 100644 index 0000000..7045a67 --- /dev/null +++ b/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCell/DropDownGridFilterCellElement.cs @@ -0,0 +1,124 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Text; +using System.Windows.Forms; +using Telerik.WinControls; +using Telerik.WinControls.Layouts; +using Telerik.WinControls.UI; + +namespace PermanentDropDownListEditorInFilterCell +{ + class DropDownGridFilterCellElement : GridFilterCellElement + { + RadDropDownListElement dropDown; + LightVisualElement operatorElement; + StackLayoutPanel container; + BindingList filterValues = new BindingList(); + + public DropDownGridFilterCellElement(GridViewDataColumn column, GridRowElement row) : base(column, row) + { + } + + BindingContext bc = new BindingContext(); + + protected override void CreateChildElements() + { + base.CreateChildElements(); + operatorElement = new LightVisualElement(); + container = new StackLayoutPanel(); + dropDown = new RadDropDownListElement(); + + dropDown.BindingContext = bc; + dropDown.DropDownStyle = RadDropDownStyle.DropDownList; + dropDown.SelectedIndexChanged += dropDown_SelectedIndexChanged; + + this.Children.Add(container); + container.Children.Add(operatorElement); + container.Children.Add(dropDown); + } + + private void dropDown_SelectedIndexChanged(object sender, Telerik.WinControls.UI.Data.PositionChangedEventArgs e) + { + GridViewDataColumn dataColumn = this.ColumnInfo as GridViewDataColumn; + + if (dataColumn.FilterDescriptor == null) + { + dataColumn.FilterDescriptor = new Telerik.WinControls.Data.FilterDescriptor(this.ColumnInfo.Name, Telerik.WinControls.Data.FilterOperator.Contains, null); + dataColumn.FilterDescriptor.IsFilterEditor = true; + } + if (e.Position > -1) + { + this.Value = dropDown.Items[e.Position].Text; + this.RowInfo.Tag = e.Position; + dataColumn.FilterDescriptor.Value = this.Value; + } + if (e.Position == 0) + { + dataColumn.FilterDescriptor = null; + } + } + + public override void Detach() + { + dropDown.SelectedIndexChanged -= dropDown_SelectedIndexChanged; + base.Detach(); + } + + protected override void SetContentCore(object value) + { + base.SetContentCore(value); + + GridViewDataColumn dataColumn = this.ColumnInfo as GridViewDataColumn; + if (dropDown.DataSource == null) + { + filterValues.Add("No filter"); + foreach (string distinctValue in dataColumn.DistinctValues) + { + filterValues.Add(distinctValue); + } + dropDown.SelectedIndexChanged -= dropDown_SelectedIndexChanged; + dropDown.DataSource = filterValues; + + dropDown.SelectedIndex = 0; + dropDown.SelectedIndexChanged += dropDown_SelectedIndexChanged; + } + this.DrawText = false; + this.ForeColor = Color.Transparent; + operatorElement.ForeColor = Color.Black; + + if (this.RowInfo.Tag != null && this.RowInfo.Tag.ToString() != dropDown.SelectedIndex.ToString()) + { + dropDown.SelectedIndexChanged -= dropDown_SelectedIndexChanged; + //synchronize the selected option + dropDown.SelectedIndex = (int)this.RowInfo.Tag; + dropDown.SelectedIndexChanged += dropDown_SelectedIndexChanged; + } + + if (dataColumn != null && dataColumn.FilterDescriptor != null) + { + //synchronize the filter operator + this.operatorElement.Text = dataColumn.FilterDescriptor.Operator.ToString(); + } + else + { + dropDown.SelectedIndexChanged -= dropDown_SelectedIndexChanged; + dropDown.SelectedIndex = 0; + dropDown.SelectedIndexChanged += dropDown_SelectedIndexChanged; + } + } + + //hide the default filter button + protected override void UpdateFilterButtonVisibility(bool enabled) + { + enabled = false; + base.UpdateFilterButtonVisibility(enabled); + } + + public override bool IsCompatible(GridViewColumn data, object context) + { + return data is CustomColumn && context is GridViewFilteringRowInfo; + } + } +} \ No newline at end of file diff --git a/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCellCSharp.csproj b/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCellCSharp.csproj new file mode 100644 index 0000000..ef7cbbf --- /dev/null +++ b/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCellCSharp.csproj @@ -0,0 +1,97 @@ + + + + Debug + x86 + 8.0.30703 + 2.0 + {E38D7BD8-C198-4AAA-A4E1-9907F1FBA46F} + WinExe + Properties + PermanentDropDownListEditorInFilterCell + PermanentDropDownListEditorInFilterCell + v2.0 + 512 + + + x86 + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + x86 + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + C:\Program Files (x86)\Progress\Telerik UI for WinForms R1 2018\Bin\Telerik.WinControls.dll + True + + + + C:\Program Files (x86)\Progress\Telerik UI for WinForms R1 2018\Bin\Telerik.WinControls.UI.dll + True + + + C:\Program Files (x86)\Progress\Telerik UI for WinForms R1 2018\Bin\TelerikCommon.dll + True + + + + + + + Form + + + RadForm1.cs + + + RadForm1.cs + + + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + \ No newline at end of file diff --git a/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCell/Program.cs b/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCell/Program.cs new file mode 100644 index 0000000..9309a12 --- /dev/null +++ b/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCell/Program.cs @@ -0,0 +1,19 @@ +using System; +using System.Windows.Forms; + +namespace PermanentDropDownListEditorInFilterCell +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new RadForm1()); + } + } +} \ No newline at end of file diff --git a/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCell/Properties/AssemblyInfo.cs b/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCell/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..d4c7f23 --- /dev/null +++ b/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCell/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("PermanentDropDownListEditorInFilterCell")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("PermanentDropDownListEditorInFilterCell")] +[assembly: AssemblyCopyright("Copyright © 2018")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("96a6d831-b75c-4cd3-8d81-b590fcf58c12")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCell/Properties/Resources.Designer.cs b/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCell/Properties/Resources.Designer.cs new file mode 100644 index 0000000..7c0ba58 --- /dev/null +++ b/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCell/Properties/Resources.Designer.cs @@ -0,0 +1,71 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace PermanentDropDownListEditorInFilterCell.Properties +{ + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources + { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if ((resourceMan == null)) + { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("PermanentDropDownListEditorInFilterCell.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCell/Properties/Resources.resx b/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCell/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCell/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCell/Properties/Settings.Designer.cs b/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCell/Properties/Settings.Designer.cs new file mode 100644 index 0000000..83e7f6d --- /dev/null +++ b/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCell/Properties/Settings.Designer.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace PermanentDropDownListEditorInFilterCell.Properties +{ + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase + { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCell/Properties/Settings.settings b/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCell/Properties/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCell/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCell/RadForm1.Designer.cs b/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCell/RadForm1.Designer.cs new file mode 100644 index 0000000..e6ecd85 --- /dev/null +++ b/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCell/RadForm1.Designer.cs @@ -0,0 +1,73 @@ +namespace PermanentDropDownListEditorInFilterCell +{ + partial class RadForm1 + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + Telerik.WinControls.UI.TableViewDefinition tableViewDefinition1 = new Telerik.WinControls.UI.TableViewDefinition(); + this.radGridView1 = new Telerik.WinControls.UI.RadGridView(); + ((System.ComponentModel.ISupportInitialize)(this.radGridView1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radGridView1.MasterTemplate)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this)).BeginInit(); + this.SuspendLayout(); + // + // radGridView1 + // + this.radGridView1.Dock = System.Windows.Forms.DockStyle.Fill; + this.radGridView1.Location = new System.Drawing.Point(0, 0); + // + // + // + this.radGridView1.MasterTemplate.ViewDefinition = tableViewDefinition1; + this.radGridView1.Name = "radGridView1"; + this.radGridView1.Size = new System.Drawing.Size(446, 351); + this.radGridView1.TabIndex = 0; + // + // RadForm1 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(446, 351); + this.Controls.Add(this.radGridView1); + this.Name = "RadForm1"; + // + // + // + this.RootElement.ApplyShapeToControl = true; + this.Text = "RadForm1"; + ((System.ComponentModel.ISupportInitialize)(this.radGridView1.MasterTemplate)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radGridView1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private Telerik.WinControls.UI.RadGridView radGridView1; + } +} \ No newline at end of file diff --git a/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCell/RadForm1.cs b/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCell/RadForm1.cs new file mode 100644 index 0000000..56ccaef --- /dev/null +++ b/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCell/RadForm1.cs @@ -0,0 +1,59 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; +using Telerik.WinControls.UI; + +namespace PermanentDropDownListEditorInFilterCell +{ + public partial class RadForm1 : Telerik.WinControls.UI.RadForm + { + public RadForm1() + { + InitializeComponent(); + + DataTable dt = new DataTable(); + dt.Columns.Add("Id", typeof(int)); + dt.Columns.Add("IssueTitle", typeof(string)); + dt.Columns.Add("Priority", typeof(string)); + for (int i = 1; i < 20; i++) + { + if (i % 2 == 0) + { + dt.Rows.Add(i, "Issue#" + i, "Low"); + } + else + { + dt.Rows.Add(i, "Issue#" + i, "High"); + } + } + + this.radGridView1.AutoGenerateColumns = false; + + GridViewDecimalColumn idColumn = new GridViewDecimalColumn("Id"); + this.radGridView1.Columns.Add(idColumn); + GridViewTextBoxColumn titleColumn = new GridViewTextBoxColumn("IssueTitle"); + this.radGridView1.Columns.Add(titleColumn); + CustomColumn myColumn = new CustomColumn(); + myColumn.FieldName = myColumn.Name = myColumn.HeaderText = "Priority"; + this.radGridView1.Columns.Add(myColumn); + + this.radGridView1.DataSource = dt; + this.radGridView1.BestFitColumns(BestFitColumnMode.AllCells); + this.radGridView1.EnableFiltering = true; + + this.radGridView1.CellBeginEdit += radGridView1_CellBeginEdit; + } + + private void radGridView1_CellBeginEdit(object sender, GridViewCellCancelEventArgs e) + { + if (e.Row is GridViewFilteringRowInfo && e.Column.Name == "Priority") + { + e.Cancel = true; + } + } + } +} \ No newline at end of file diff --git a/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCell/RadForm1.resx b/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCell/RadForm1.resx new file mode 100644 index 0000000..7080a7d --- /dev/null +++ b/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCell/RadForm1.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCellVB/App.config b/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCellVB/App.config new file mode 100644 index 0000000..4e5257e --- /dev/null +++ b/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCellVB/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCellVB/CustomColumn.vb b/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCellVB/CustomColumn.vb new file mode 100644 index 0000000..93dfe3e --- /dev/null +++ b/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCellVB/CustomColumn.vb @@ -0,0 +1,11 @@ +Imports Telerik.WinControls.UI + +Public Class CustomColumn + Inherits GridViewTextBoxColumn + Public Overrides Function GetCellType(ByVal row As GridViewRowInfo) As Type + If TypeOf row Is GridViewFilteringRowInfo Then + Return GetType(DropDownGridFilterCellElement) + End If + Return MyBase.GetCellType(row) + End Function +End Class diff --git a/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCellVB/DropDownGridFilterCellElement.vb b/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCellVB/DropDownGridFilterCellElement.vb new file mode 100644 index 0000000..9ae2e23 --- /dev/null +++ b/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCellVB/DropDownGridFilterCellElement.vb @@ -0,0 +1,85 @@ +Imports Telerik.WinControls.UI +Imports Telerik.WinControls.Layouts +Imports System.ComponentModel +Imports Telerik.WinControls + +Public Class DropDownGridFilterCellElement + Inherits GridFilterCellElement + Private dropDown As RadDropDownListElement + Private operatorElement As LightVisualElement + Private container As StackLayoutPanel + Private filterValues As BindingList(Of String) + Private bc As BindingContext + Public Sub New(column As GridViewDataColumn, row As GridRowElement) + MyBase.New(column, row) + End Sub + Protected Overrides Sub CreateChildElements() + MyBase.CreateChildElements() + filterValues = New BindingList(Of String)() + bc = New Windows.Forms.BindingContext() + operatorElement = New LightVisualElement() + container = New StackLayoutPanel() + dropDown = New RadDropDownListElement() + dropDown.BindingContext = bc + dropDown.DropDownStyle = RadDropDownStyle.DropDownList + AddHandler dropDown.SelectedIndexChanged, AddressOf dropDown_SelectedIndexChanged + Me.Children.Add(container) + container.Children.Add(operatorElement) + container.Children.Add(dropDown) + End Sub + Private Sub dropDown_SelectedIndexChanged(ByVal sender As Object, ByVal e As Telerik.WinControls.UI.Data.PositionChangedEventArgs) + Dim dataColumn As GridViewDataColumn = TryCast(Me.ColumnInfo, GridViewDataColumn) + If dataColumn.FilterDescriptor Is Nothing Then + dataColumn.FilterDescriptor = New Telerik.WinControls.Data.FilterDescriptor(Me.ColumnInfo.Name, Telerik.WinControls.Data.FilterOperator.Contains, Nothing) + dataColumn.FilterDescriptor.IsFilterEditor = True + End If + If e.Position > -1 Then + Me.Value = dropDown.Items(e.Position).Text + Me.RowInfo.Tag = e.Position + dataColumn.FilterDescriptor.Value = Me.Value + End If + If e.Position = 0 Then + dataColumn.FilterDescriptor = Nothing + End If + End Sub + Public Overrides Sub Detach() + RemoveHandler dropDown.SelectedIndexChanged, AddressOf dropDown_SelectedIndexChanged + MyBase.Detach() + End Sub + Protected Overrides Sub SetContentCore(ByVal value As Object) + MyBase.SetContentCore(value) + Dim dataColumn As GridViewDataColumn = TryCast(Me.ColumnInfo, GridViewDataColumn) + If dropDown.DataSource Is Nothing Then + filterValues.Add("No filter") + For Each distinctValue As String In dataColumn.DistinctValues + filterValues.Add(distinctValue) + Next + RemoveHandler dropDown.SelectedIndexChanged, AddressOf dropDown_SelectedIndexChanged + dropDown.DataSource = filterValues + dropDown.SelectedIndex = 0 + AddHandler dropDown.SelectedIndexChanged, AddressOf dropDown_SelectedIndexChanged + End If + Me.DrawText = False + Me.ForeColor = Color.Transparent + operatorElement.ForeColor = Color.Black + If Me.RowInfo.Tag IsNot Nothing AndAlso Me.RowInfo.Tag.ToString() <> dropDown.SelectedIndex.ToString() Then + RemoveHandler dropDown.SelectedIndexChanged, AddressOf dropDown_SelectedIndexChanged + dropDown.SelectedIndex = CInt(Me.RowInfo.Tag) + AddHandler dropDown.SelectedIndexChanged, AddressOf dropDown_SelectedIndexChanged + End If + If dataColumn IsNot Nothing AndAlso dataColumn.FilterDescriptor IsNot Nothing Then + Me.operatorElement.Text = dataColumn.FilterDescriptor.[Operator].ToString() + Else + RemoveHandler dropDown.SelectedIndexChanged, AddressOf dropDown_SelectedIndexChanged + dropDown.SelectedIndex = 0 + AddHandler dropDown.SelectedIndexChanged, AddressOf dropDown_SelectedIndexChanged + End If + End Sub + Protected Overrides Sub UpdateFilterButtonVisibility(ByVal enabled As Boolean) + enabled = False + MyBase.UpdateFilterButtonVisibility(enabled) + End Sub + Public Overrides Function IsCompatible(ByVal data As GridViewColumn, ByVal context As Object) As Boolean + Return TypeOf data Is CustomColumn AndAlso TypeOf context Is GridViewFilteringRowInfo + End Function +End Class diff --git a/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCellVB/My Project/Application.Designer.vb b/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCellVB/My Project/Application.Designer.vb new file mode 100644 index 0000000..a5cad16 --- /dev/null +++ b/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCellVB/My Project/Application.Designer.vb @@ -0,0 +1,38 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:4.0.30319.42000 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + +Namespace My + + 'NOTE: This file is auto-generated; do not modify it directly. To make changes, + ' or if you encounter build errors in this file, go to the Project Designer + ' (go to Project Properties or double-click the My Project node in + ' Solution Explorer), and make changes on the Application tab. + ' + Partial Friend Class MyApplication + + _ + Public Sub New() + MyBase.New(Global.Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows) + Me.IsSingleInstance = false + Me.EnableVisualStyles = true + Me.SaveMySettingsOnExit = true + Me.ShutDownStyle = Global.Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses + End Sub + + _ + Protected Overrides Sub OnCreateMainForm() + Me.MainForm = Global.PermanentDropDownListEditorInFilterCellVB.RadForm1 + End Sub + End Class +End Namespace diff --git a/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCellVB/My Project/Application.myapp b/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCellVB/My Project/Application.myapp new file mode 100644 index 0000000..f068425 --- /dev/null +++ b/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCellVB/My Project/Application.myapp @@ -0,0 +1,11 @@ + + + true + RadForm1 + false + 0 + true + 0 + 0 + true + diff --git a/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCellVB/My Project/AssemblyInfo.vb b/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCellVB/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..d489083 --- /dev/null +++ b/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCellVB/My Project/AssemblyInfo.vb @@ -0,0 +1,35 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCellVB/My Project/Resources.Designer.vb b/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCellVB/My Project/Resources.Designer.vb new file mode 100644 index 0000000..12cc28d --- /dev/null +++ b/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCellVB/My Project/Resources.Designer.vb @@ -0,0 +1,62 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:4.0.30319.42000 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If Object.ReferenceEquals(resourceMan, Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("PermanentDropDownListEditorInFilterCellVB.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set(ByVal value As Global.System.Globalization.CultureInfo) + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCellVB/My Project/Resources.resx b/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCellVB/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCellVB/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCellVB/My Project/Settings.Designer.vb b/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCellVB/My Project/Settings.Designer.vb new file mode 100644 index 0000000..db92842 --- /dev/null +++ b/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCellVB/My Project/Settings.Designer.vb @@ -0,0 +1,73 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:4.0.30319.42000 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + +Namespace My + + _ + Partial Friend NotInheritable Class MySettings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings) + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + Private Shared addedHandlerLockObject As New Object + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As MySettings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If +#End If + Return defaultInstance + End Get + End Property + End Class +End Namespace + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.PermanentDropDownListEditorInFilterCellVB.My.MySettings + Get + Return Global.PermanentDropDownListEditorInFilterCellVB.My.MySettings.Default + End Get + End Property + End Module +End Namespace diff --git a/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCellVB/My Project/Settings.settings b/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCellVB/My Project/Settings.settings new file mode 100644 index 0000000..85b890b --- /dev/null +++ b/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCellVB/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCellVB/My Project/licenses.licx b/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCellVB/My Project/licenses.licx new file mode 100644 index 0000000..213706b --- /dev/null +++ b/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCellVB/My Project/licenses.licx @@ -0,0 +1 @@ +Telerik.WinControls.UI.RadGridView, Telerik.WinControls.GridView, Version=2018.1.220.20, Culture=neutral, PublicKeyToken=5bb2a467cbec794e diff --git a/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCellVB/PermanentDropDownListEditorInFilterCellVB.vbproj b/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCellVB/PermanentDropDownListEditorInFilterCellVB.vbproj new file mode 100644 index 0000000..bb0fea1 --- /dev/null +++ b/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCellVB/PermanentDropDownListEditorInFilterCellVB.vbproj @@ -0,0 +1,138 @@ + + + + Debug + x86 + + + 2.0 + {51557AE9-2CCF-484C-BC3E-B7B147619081} + WinExe + PermanentDropDownListEditorInFilterCellVB.My.MyApplication + PermanentDropDownListEditorInFilterCellVB + PermanentDropDownListEditorInFilterCellVB + 512 + WindowsForms + v2.0 + + + x86 + true + full + true + true + bin\Debug\ + PermanentDropDownListEditorInFilterCellVB.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + x86 + pdbonly + false + true + true + bin\Release\ + PermanentDropDownListEditorInFilterCellVB.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + On + + + Binary + + + Off + + + On + + + + + + + + + + C:\Program Files (x86)\Progress\Telerik UI for WinForms R1 2018\Bin\Telerik.WinControls.dll + True + + + + C:\Program Files (x86)\Progress\Telerik UI for WinForms R1 2018\Bin\Telerik.WinControls.UI.dll + True + + + C:\Program Files (x86)\Progress\Telerik UI for WinForms R1 2018\Bin\TelerikCommon.dll + True + + + + + + + + + + + + + + + + + Form + + + RadForm1.vb + Form + + + + RadForm1.vb + + + + True + Application.myapp + + + True + True + Resources.resx + + + True + Settings.settings + True + + + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + Designer + + + + + MyApplicationCodeGenerator + Application.Designer.vb + + + SettingsSingleFileGenerator + My + Settings.Designer.vb + + + + + \ No newline at end of file diff --git a/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCellVB/RadForm1.Designer.vb b/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCellVB/RadForm1.Designer.vb new file mode 100644 index 0000000..2e5eb7c --- /dev/null +++ b/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCellVB/RadForm1.Designer.vb @@ -0,0 +1,63 @@ + _ +Partial Class RadForm1 + Inherits Telerik.WinControls.UI.RadForm + + 'Form overrides dispose to clean up the component list. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + Dim TableViewDefinition1 As Telerik.WinControls.UI.TableViewDefinition = New Telerik.WinControls.UI.TableViewDefinition() + Me.RadGridView1 = New Telerik.WinControls.UI.RadGridView() + CType(Me.RadGridView1, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.RadGridView1.MasterTemplate, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'RadGridView1 + ' + Me.RadGridView1.Dock = System.Windows.Forms.DockStyle.Fill + Me.RadGridView1.Location = New System.Drawing.Point(0, 0) + ' + ' + ' + Me.RadGridView1.MasterTemplate.ViewDefinition = TableViewDefinition1 + Me.RadGridView1.Name = "RadGridView1" + Me.RadGridView1.Size = New System.Drawing.Size(446, 351) + Me.RadGridView1.TabIndex = 0 + ' + 'RadForm1 + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(446, 351) + Me.Controls.Add(Me.RadGridView1) + Me.Name = "RadForm1" + ' + ' + ' + Me.RootElement.ApplyShapeToControl = True + Me.Text = "RadForm1" + CType(Me.RadGridView1.MasterTemplate, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.RadGridView1, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + + End Sub + Friend WithEvents RadGridView1 As Telerik.WinControls.UI.RadGridView +End Class diff --git a/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCellVB/RadForm1.resx b/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCellVB/RadForm1.resx new file mode 100644 index 0000000..7080a7d --- /dev/null +++ b/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCellVB/RadForm1.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCellVB/RadForm1.vb b/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCellVB/RadForm1.vb new file mode 100644 index 0000000..f9c0fdd --- /dev/null +++ b/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCellVB/RadForm1.vb @@ -0,0 +1,42 @@ +Imports Telerik.WinControls.UI + +Public Class RadForm1 + Sub New() + + InitializeComponent() + + Dim dt As DataTable = New DataTable() + dt.Columns.Add("Id", GetType(Integer)) + dt.Columns.Add("IssueTitle", GetType(String)) + dt.Columns.Add("Priority", GetType(String)) + For i As Integer = 1 To 20 - 1 + If i Mod 2 = 0 Then + dt.Rows.Add(i, "Issue#" & i, "Low") + Else + dt.Rows.Add(i, "Issue#" & i, "High") + End If + Next + Me.RadGridView1.AutoGenerateColumns = False + Dim idColumn As GridViewDecimalColumn = New GridViewDecimalColumn("Id") + Me.RadGridView1.Columns.Add(idColumn) + Dim titleColumn As GridViewTextBoxColumn = New GridViewTextBoxColumn("IssueTitle") + Me.RadGridView1.Columns.Add(titleColumn) + Dim myColumn As CustomColumn = New CustomColumn() + myColumn.FieldName = "Priority" + myColumn.Name = "Priority" + myColumn.HeaderText = "Priority" + Me.RadGridView1.Columns.Add(myColumn) + Me.RadGridView1.DataSource = dt + Me.RadGridView1.BestFitColumns(BestFitColumnMode.AllCells) + Me.RadGridView1.EnableFiltering = True + + AddHandler Me.RadGridView1.CellBeginEdit, AddressOf radGridView1_CellBeginEdit + End Sub + + Private Sub radGridView1_CellBeginEdit(sender As Object, e As GridViewCellCancelEventArgs) + If TypeOf e.Row Is GridViewFilteringRowInfo AndAlso e.Column.Name = "Priority" Then + e.Cancel = True + End If + End Sub + +End Class diff --git a/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCellVB/obj/x86/Debug/DesignTimeResolveAssemblyReferences.cache b/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCellVB/obj/x86/Debug/DesignTimeResolveAssemblyReferences.cache new file mode 100644 index 0000000..eda4cdd Binary files /dev/null and b/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCellVB/obj/x86/Debug/DesignTimeResolveAssemblyReferences.cache differ diff --git a/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCellVB/obj/x86/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCellVB/obj/x86/Debug/DesignTimeResolveAssemblyReferencesInput.cache new file mode 100644 index 0000000..6b674d5 Binary files /dev/null and b/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCellVB/obj/x86/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ diff --git a/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCellVB/obj/x86/Debug/TempPE/My Project.Resources.Designer.vb.dll b/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCellVB/obj/x86/Debug/TempPE/My Project.Resources.Designer.vb.dll new file mode 100644 index 0000000..0fd3b7f Binary files /dev/null and b/PermanentDropDownListEditorInFilterCell/PermanentDropDownListEditorInFilterCellVB/obj/x86/Debug/TempPE/My Project.Resources.Designer.vb.dll differ