Last Updated: 15 Oct 2019 12:09 by ADMIN
Currently when grouping the summary row for each group is shown. The ShowTotals property defines if total summary rows will be shown. Need an option to define if the group summary row will be shown.
Last Updated: 14 Oct 2019 06:06 by ADMIN

Please refer to the following code snippet demonstrating how the comparer can be applied:

        public RadForm1()
            this.radGridView1.EnableFiltering = true;
            this.radGridView1.ShowHeaderCellButtons = true;
            this.radGridView1.FilterPopupInitialized += radGridView1_FilterPopupInitialized; 

        private void radGridView1_FilterPopupRequired(object sender, FilterPopupRequiredEventArgs e)
            RadListFilterPopup popup = e.FilterPopup as RadListFilterPopup;
            if (popup != null)
                popup.MenuTreeElement.TreeView.TreeViewElement.Comparer = new MyComparer(popup.MenuTreeElement.TreeView.TreeViewElement);

        class MyComparer : TreeNodeComparer
            public MyComparer(RadTreeViewElement treeView)
                : base(treeView)
            public override int Compare(RadTreeNode x, RadTreeNode y)
                if (this.TreeViewElement.SortOrder == SortOrder.Descending)
                    return x.Text.CompareTo(y.Text);
                return x.Text.CompareTo(y.Text) * -1;

Last Updated: 11 Oct 2019 06:08 by ADMIN
This way the column could bind to any collection of objects which can be converted to doubles.
Last Updated: 04 Oct 2019 10:04 by ADMIN

I am currently working in Telerik v2019.3.917 and .Net 4.5.2. I have multiple theme's setup for a local application for my users but I am seeing something odd with the Telerik.WinControls.Themes.HighContrastBlack theme. It appears that I am unable to select more than one cell in this theme. My grid has multiselect as true and SelectionMode as CellSelect. I have tried holding ctrl and clicking cells, clicking the row header, holding the mouse down and dragging, and using Ctrl+A but none of these select more than one cell.

I am setting the application theme on launch:

var _t = new Telerik.WinControls.Themes.HighContrastBlackTheme();
ThemeResolutionService.ApplicationThemeName = "HighContrastBlack";


Themes that work: All Fluents, All Material, All VS.

Is this a bug or am I missing something?

Last Updated: 14 Oct 2019 10:33 by ADMIN
Release R3 2019 SP1

Dear Telerik Support Team,


I have a Grid with one level of Hierarchy, I am using also the search row control of Gridview but this control only searches the data in the Parent Grid and not in the child Grid, I am using the version: v.2019.2.618.20 of Telerik controls in the Project. Below is the code snippet which is used in the Project, please let us know how we can search in child grid using the search row of the Gridview.


            radgvStockCount.DataSource = dtStockCountHeader
            radgvStockCount.MasterTemplate.EnableHierarchyFiltering = True
            radgvStockCount.UseScrollbarsInHierarchy = True
            radgvStockCount.MasterTemplate.Columns("INVCountHeaderId").IsVisible = False
            radgvStockCount.MasterTemplate.Columns("INVCountNo").HeaderText = "Stock Count No"
            radgvStockCount.MasterTemplate.Columns("CountryCode").HeaderText = "Country Code"
            radgvStockCount.MasterTemplate.Columns("AreaCode").HeaderText = "Area Code"
            radgvStockCount.MasterTemplate.Columns("LocationCode").HeaderText = "Location Code"
            radgvStockCount.MasterTemplate.Columns("LocationName").HeaderText = "Location Name"
            radgvStockCount.MasterTemplate.Columns("CreatedBy").HeaderText = "Opened By"
            radgvStockCount.MasterTemplate.Columns("CreatedDate").HeaderText = "Opened Date"

            Dim template As New GridViewTemplate()
            template.DataSource = dtStockCountBatches
            template.Columns("INVCountBatchesId").IsVisible = False
            template.Columns("INVCountHeaderId").IsVisible = False
            template.Columns("INVCountNo").HeaderText = "Stock Count No"
            template.Columns("INVCountBatchesNo").HeaderText = "Stock Count Batch No"
            template.Columns("LocationCode").HeaderText = "Location Code"
            template.Columns("LocationName").HeaderText = "Location Name"
            template.Columns("SupervisorQty").HeaderText = "Supervisor Qty"
            template.Columns("CreatedBy").HeaderText = "Batch File Uploaded By"
            template.Columns("CreatedDate").HeaderText = "Uploaded Date"
            template.AllowAddNewRow = False
            template.AllowEditRow = False
            template.AllowDeleteRow = False
            template.AllowSearchRow = False
            template.AllowRowResize = False
            template.EnableFiltering = True
            template.EnableHierarchyFiltering = True
            template.ShowHeaderCellButtons = True
            template.ShowGroupedColumns = True
            template.EnableHierarchyFiltering = True
            template.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill

            Dim relation As New GridViewRelation(radgvStockCount.MasterTemplate, template)
            relation.RelationName = "StockCountBatches"
Last Updated: 08 Oct 2019 16:27 by ADMIN
Release R3 2019 SP1

When pressing Enter or Tab in the new row the ParsingDateTime event is fired after the editor is validated. Use attached to reproduce.


private void GridView_CellEditorInitialized(object sender, GridViewCellEventArgs e)
    var editor = gridView.ActiveEditor as RadDateTimeEditor;
    var editorElement = editor.EditorElement as RadDateTimeEditorElement;
    editorElement.TextBoxElement.MaskType = MaskType.FreeFormDateTime;
    var provider = ((FreeFormDateTimeProvider)editorElement.TextBoxElement.Provider);
    editorElement.TextBoxElement.Provider = new MyFreeFormDateTimeProvider(provider.Mask, provider.Culture, provider.Owner);

class MyFreeFormDateTimeProvider : FreeFormDateTimeProvider
    public MyFreeFormDateTimeProvider(string mask, CultureInfo culture, RadMaskedEditBoxElement owner) : base(mask, culture, owner)
    public override bool Validate(string stringValue)
        //do your code here
        return base.Validate(stringValue);
Last Updated: 08 Oct 2019 11:19 by ADMIN
Release R3 2019 SP1
Created by: Syed Hussain
Comments: 5
Category: GridView
Type: Bug Report

We have upgraded from WinControl UI 2010 to 2019 R2. 

we have a lot of non-data bound radgridview that we process our data and add each row manually.

The radgridView.Rows.Add(rowdatacolumn1, rowdatacolumn2, rowdatacolumn3) used to return the row index of the added row. It is now returning -1 . 

This is breaking a lot of our code. 

Last Updated: 08 Oct 2019 16:26 by ADMIN
Release R3 2019 SP1
Last Updated: 08 Oct 2019 16:24 by ADMIN
Release R3 2019 SP1
The BackColor is not exported when a custom theme is used along with conditional formatting and BackColor is set to transparent in the custo theme.
Last Updated: 08 Oct 2019 16:13 by ADMIN
Release R3 2019 SP1
Created by: Dimitar
Comments: 0
Category: GridView
Type: Bug Report
The DateTime Value is lost when using a custom format "dd.MM.yyyy" in RadgridView and custom provider is used. 

Set the MaxDate in the custom provider:
Public Class MyMaskDateTimeProvider
  Inherits MaskDateTimeProvider

  Public Sub New(mask As String, culture As CultureInfo, owner As RadMaskedEditBoxElement)
        MyBase.New(mask, culture, owner)
        Me.MaxDate = DateTime.MaxValue
    End Sub

End Class
Pending Review
Last Updated: 30 Aug 2019 14:14 by ADMIN
Fatching data from sql database in gridViewCommboBoxColumn select the value then retrieve data other column in the same Rows windows application in
Last Updated: 23 Aug 2019 05:43 by ADMIN



I am working with the RadGridView in my c# winform application. I am using the custom font ("Font Awesome 5 Free Solid") for the RadGridView using the "CellFormatting" event to view the icons along with the text. Here i am able to see the proper icons with text but when i open the filter menu to filter out the rows, i am unable to see the icons (icons shown as the box) as in filterbox we don't have any custom font

I tried to working out the properties of the RadTreeNodeCollection but here we dont have any Custom font property for the same. 

i want to show the text as it is in the filterbox along with the text and the icon.

so can you suggest what i can do to view the icons in the filterbox?

Check the attachment for reference.


Last Updated: 14 Aug 2019 07:25 by ADMIN
Created by: Tel
Comments: 1
Category: GridView
Type: Feature Request
Hello, i am using the GridViewSpreadStreamExport to export a gridview with parent and child rows.
Everithing works fine but is it possible to set the parent row to collapsed, if there are child rows?
Last Updated: 02 Aug 2019 14:04 by ADMIN
Created by: Roger
Comments: 1
Category: GridView
Type: Feature Request

I might be missing something, but I have Hyperlinks in a column in my RadDatGridView.


I tried searching for a Support document explaining this, but didn't find any.


When the grid is exported to excel all data is coming across, but the column with hyperlink is not

a hyperlink in Excel.


Below is sample of the code used to make the "HyperLink" column in my grid.

                radGridView1.DataSource = dtResults;
                GridViewHyperlinkColumn col = new GridViewHyperlinkColumn();
                radGridView1.Columns.Insert(5, col);
                col.Width = 200;
                col.FieldName = "Path";
                col.HeaderText = "Path";
                col.Name = "Path";


Coded used to do the Export....

               GridViewSpreadExport spreadExporter = new GridViewSpreadExport(this.radGridView1);
                spreadExporter.ExportVisualSettings = true;
                SpreadExportRenderer exportRenderer = new SpreadExportRenderer();

                spreadExporter.RunExport(filename, exportRenderer);





Last Updated: 18 Jul 2019 11:45 by ADMIN


In our Environment it's not possible to assign a GroupComparer to another GridView template then MasterTemplate. The GroupComparer property is always null after assignment.

It's possible to assign our custom comparer to the MasterTemplate and it will be triggered, but not in another template then MasterTemplate.

Best regards.

Tassilo Koller | Dipl. Informatiker (FH) | IT-Softwareentwicklung

[T] +49 (0)8233 381 383

[E] | [W]

FORUM MEDIA GROUP GMBH| Mandichostraße 18 | 86504 Merching | [T] +49 (0)8233 381-0 | [F] + 49 (0)8233 381-222 | [W]| Sitz der Gesellschaft: Merching | Register: AG Augsburg HRB 11537 | Geschäftsführer: Magdalena Balanicka, Norbert Bietsch, Roland Hradek, Mihaela Mravlje | Beirat: Ronald Herkert (Vorsitzender)

Elektronische Rechnungen bitte an folgende Adresse senden:

Under Review
Last Updated: 17 Jul 2019 14:00 by ADMIN

Using a custom control using the Telerik Presentation Framework, I am receiving a NullException inside the GridCheckBoxHeaderCellElement during the GridViewElement's data load.

The custom control construction follows an example I found somewhere (reference is lost to me at this point):

ControlContainingGridView inherits from RadControl

CreateChildItems creates and adds ControlContainingGridViewElement


ControlContainingGridViewElement inherits from RadElement

CreateChildItems creates and adds some layout controls AND a GridViewElement


public partial class ControlContainingGridView : RadControl {
        public ControlContainingGridView() {
            this.TextChanged += ControlContainingGridView_TextChanged;

        private void ControlContainingGridView_TextChanged(object sender, EventArgs e) {
            controlContainingGridViewElement.Text = this.Text;

        private ControlContainingGridViewElement controlContainingGridViewElement = null;

        protected override void CreateChildItems(RadElement parent) {
            controlContainingGridViewElement = new ControlContainingGridViewElement();

        public object DataSource {
            get {
                return controlContainingGridViewElement.GridView.Template.DataSource;
            set {
                try {
                    controlContainingGridViewElement.GridView.Template.DataSource = value;
                } catch (Exception ex) {

        internal void SetupColumns(Action<MasterGridViewTemplate> setupColumns) {
            controlContainingGridViewElement.GridView.Template.AutoGenerateColumns = false;


    public class ControlContainingGridViewElement : RadElement {

        private TextPrimitive textPrimitive = null;
        private RadButtonElement addButton = null;
        private RadButtonElement deleteButton = null;
        private RadGridViewElement gridViewElement = null;

        public RadGridViewElement GridView { get { return gridViewElement; } }

        public bool ShowAddButton { get { return addButton.Visibility == ElementVisibility.Visible; } set { addButton.Visibility = value ? ElementVisibility.Visible : ElementVisibility.Collapsed; } }
        public bool ShowDeleteButton { get { return deleteButton.Visibility == ElementVisibility.Visible; } set { deleteButton.Visibility = value ? ElementVisibility.Visible : ElementVisibility.Collapsed; } }

        public string Text { get { return textPrimitive.Text; } set { textPrimitive.Text = value; } }

        protected override void CreateChildElements() {
            DockLayoutPanel dlp = new DockLayoutPanel();
            dlp.StretchHorizontally = true;
            dlp.StretchHorizontally = true;
            dlp.LastChildFill = true;

            DockLayoutPanel dlpBar = new DockLayoutPanel();
            dlpBar.StretchHorizontally = true;
            DockLayoutPanel.SetDock(dlpBar, Dock.Top);

            var imagePrimitive = new ImagePrimitive();
            DockLayoutPanel.SetDock(imagePrimitive, Dock.Left);

            textPrimitive = new TextPrimitive();
            DockLayoutPanel.SetDock(textPrimitive, Dock.Left);

            var slp = new StackLayoutPanel();
            DockLayoutPanel.SetDock(slp, Dock.Right);

            var addButton = new RadButtonElement {
                Text = "Add",
                MaxSize = new Size() { Height = 20 }
            var deleteButton = new RadButtonElement {
                Text = "Del",
                MaxSize = new Size() { Height = 20 }



            gridViewElement = new RadGridViewElement {
                StretchHorizontally = true,
                StretchVertically = true
            gridViewElement.Template.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill;
            gridViewElement.Template.AllowAddNewRow = false;
            gridViewElement.Template.AllowDeleteRow = false;
            gridViewElement.Template.AllowDragToGroup = false;
            gridViewElement.ShowGroupPanel = false;
            gridViewElement.ShowGroupPanelScrollbars = false;





During Form load, I programmatically add columns and provide a binding source


private List<SampleModel> sampleModels = new List<SampleModel>();
        private BindingSource sampleModelsBinding = new BindingSource();

        private void RadForm1_Load(object sender, EventArgs e) {

            sampleModels.Add(new SampleModel() {
                When = DateTime.Parse("1980-04-23"),
                SomeText = "Purple Bananas",
                IsTrue = true
            sampleModels.Add(new SampleModel() {
                When = DateTime.Parse("2002-07-20"),
                SomeText = "Ball & Chain",
                IsTrue = false
            sampleModelsBinding.DataSource = sampleModels;

            controlContainingGridView.SetupColumns((grid) => {
                grid.AddDateTimeColumn(nameof(SampleModel.When), "When");
                grid.AddTextBoxColumn(nameof(SampleModel.SomeText), "Some Text");
                grid.AddCheckBoxColumn(nameof(SampleModel.IsTrue), "Is True");

            controlContainingGridView.DataSource = sampleModelsBinding;



Inclusion of the CheckBox column results in the following error:

Exception thrown: 'System.NullReferenceException' in Telerik.WinControls.GridView.dll

System.NullReferenceException: Object reference not set to an instance of an object.
   at Telerik.WinControls.UI.GridCheckBoxHeaderCellElement.Attach(GridViewColumn data, Object context)
   at Telerik.WinControls.UI.BaseVirtualizedContainer`1.InsertElement(Int32 position, IVirtualizedElement`1 element, T data)
   at Telerik.WinControls.UI.BaseVirtualizedContainer`1.UpdateElement(Int32 position, T data)
   at Telerik.WinControls.UI.BaseVirtualizedContainer`1.MeasureElements()
   at Telerik.WinControls.UI.BaseVirtualizedContainer`1.MeasureOverride(SizeF availableSize)
   at Telerik.WinControls.RadElement.MeasureCore(SizeF availableSize)
   at Telerik.WinControls.RadElement.Measure(SizeF availableSize)
   at Telerik.WinControls.UI.GridVirtualizedRowElement.MeasureElements(SizeF availableSize, SizeF clientSize, Padding borderThickness)
   at Telerik.WinControls.UI.LightVisualElement.MeasureOverride(SizeF availableSize)
   at Telerik.WinControls.UI.GridRowElement.MeasureOverride(SizeF availableSize)
   at Telerik.WinControls.RadElement.MeasureCore(SizeF availableSize)
   at Telerik.WinControls.RadElement.Measure(SizeF availableSize)
   at Telerik.WinControls.UI.VirtualizedStackContainer`1.MeasureElementCore(RadElement element, SizeF availableSize)
   at Telerik.WinControls.UI.ScrollableRowsContainerElement.MeasureElementCore(RadElement element, SizeF availableSize)
   at Telerik.WinControls.UI.VirtualizedStackContainer`1.MeasureElement(IVirtualizedElement`1 element)
   at Telerik.WinControls.UI.PinnedRowsContainerElement.MeasureElement(IVirtualizedElement`1 element)
   at Telerik.WinControls.UI.BaseVirtualizedContainer`1.MeasureElements()
   at Telerik.WinControls.UI.BaseVirtualizedContainer`1.MeasureOverride(SizeF availableSize)
   at Telerik.WinControls.UI.ScrollableRowsContainerElement.MeasureOverride(SizeF availableSize)
   at Telerik.WinControls.RadElement.MeasureCore(SizeF availableSize)
   at Telerik.WinControls.RadElement.Measure(SizeF availableSize)
   at Telerik.WinControls.UI.RowsContainerElement.MeasureOverride(SizeF availableSize)
   at Telerik.WinControls.RadElement.MeasureCore(SizeF availableSize)
   at Telerik.WinControls.RadElement.Measure(SizeF availableSize)
   at Telerik.WinControls.UI.ScrollViewElement`1.MeasureViewElement(SizeF availableSize)
   at Telerik.WinControls.UI.ScrollViewElement`1.MeasureView(SizeF availableSize)
   at Telerik.WinControls.UI.ScrollViewElement`1.MeasureOverride(SizeF availableSize)
   at Telerik.WinControls.UI.GridTableElement.MeasureOverride(SizeF availableSize)
   at Telerik.WinControls.RadElement.MeasureCore(SizeF availableSize)
   at Telerik.WinControls.RadElement.Measure(SizeF availableSize)
   at Telerik.WinControls.Layouts.DockLayoutPanel.MeasureOverride(SizeF constraint)
   at Telerik.WinControls.RadElement.MeasureCore(SizeF availableSize)
   at Telerik.WinControls.RadElement.Measure(SizeF availableSize)
   at Telerik.WinControls.Layouts.ContextLayoutManager.UpdateLayout()
   at Telerik.WinControls.UI.GridVisibilityHelper.EnsureRowVisible(GridViewRowInfo rowInfo)
   at Telerik.WinControls.UI.GridTableElement.EnsureRowVisible(GridViewRowInfo rowInfo)
   at Telerik.WinControls.UI.GridTableElement.EnsureCellVisible(GridViewRowInfo rowInfo, GridViewColumn column)
   at Telerik.WinControls.UI.GridTableElement.UpdateViewCore(Object sender, DataViewChangedEventArgs args)
   at Telerik.WinControls.UI.GridTableElement.UpdateView(Object sender, DataViewChangedEventArgs args)
   at Telerik.WinControls.UI.GridTableElement.ProcessTemplateEvent(GridViewEvent eventData)
   at Telerik.WinControls.UI.GridTableElement.Telerik.WinControls.UI.IGridViewEventListener.ProcessEvent(GridViewEvent eventData)
   at Telerik.WinControls.UI.GridViewEventProcessEntity.ProcessCollection(GridViewEvent gridEvent, PriorityWeakReferenceList list, GridEventProcessMode processMode)
   at Telerik.WinControls.UI.GridViewEventProcessEntity.ProcessEvent(GridViewEvent gridEvent)
   at Telerik.WinControls.UI.GridViewSynchronizationService.NotifyListeners(GridViewEvent gridEvent)
   at Telerik.WinControls.UI.GridViewSynchronizationService.FlushEvents()
   at Telerik.WinControls.UI.GridViewSynchronizationService.DispatchEvent(GridViewEvent gridEvent)
   at Telerik.WinControls.UI.GridViewSynchronizationService.RaiseCurrentChanged(GridViewTemplate template, GridViewRowInfo row, GridViewColumn column, Boolean user)
   at Telerik.WinControls.UI.GridViewTemplate.CollectionView_CurrentChanged(Object sender, EventArgs e)
   at System.EventHandler.Invoke(Object sender, EventArgs e)
   at Telerik.WinControls.Data.RadCollectionView`1.OnCurrentChanged(EventArgs args)
   at Telerik.WinControls.Data.RadCollectionView`1.SetCurrentPositionCore(Int32 newPosition, Boolean forceNotify, CurrentChangeReason reason)
   at Telerik.WinControls.Data.RadListSource`1.InitializeCurrentItem()
   at Telerik.WinControls.Data.RadListSource`1.Initialize()
   at Telerik.WinControls.Data.RadListSource`1.Bind(Object dataSource, String dataMember)
   at Telerik.WinControls.Data.RadListSource`1.set_DataSource(Object value)
   at Telerik.WinControls.UI.GridViewTemplate.set_DataSource(Object value)
   at BugReproduction.ControlContainingGridView.set_DataSource(Object value) in ...\BugReproduction\BugReproduction\ControlContainingGridView.cs:line 42

Last Updated: 14 Oct 2019 10:43 by ADMIN
Release R3 2019 SP1
Add a combo-box column that point to a field with Guid data type, add summary item to this columns as well.


private void RadGridView1_CreateRowInfo(object sender, GridViewCreateRowInfoEventArgs e)
    if (e.RowInfo is GridViewSearchRowInfo)
        e.RowInfo = new MySerachRow(e.ViewInfo);

class MySerachRow : GridViewSearchRowInfo
    public MySerachRow(GridViewInfo viewInfo) : base(viewInfo)

    public override string GetCellFormattedValue(GridViewRowInfo row, GridViewColumn column)
        if (row is GridViewSummaryRowInfo)
            return "";
        return base.GetCellFormattedValue(row, column);
Last Updated: 27 Jun 2019 09:53 by ADMIN
Add a new DeferredFilter property on RadGridView level which controls whether the filtering logic will be immediately preformed on each key stroke or only by pressing Enter.
Under Review
Last Updated: 27 Jun 2019 09:40 by ADMIN

Please refer to the attached gif file. You will notice that for the GridViewMaskBoxColumn  with numeric mask the filtering doesn't work. For the other columns each key stroke filters the grid rows.

Workaround: either use a GridViewDecimalColumn or change the default editor for the GridViewMaskBoxColumn :

            this.radGridView1.EditorRequired += radGridView1_EditorRequired; 

        private void radGridView1_EditorRequired(object sender, EditorRequiredEventArgs e)
            if (this.radGridView1.CurrentColumn.HeaderText == "MaskBoxColumn")
                GridSpinEditor spinEditor = new GridSpinEditor();
                RadSpinEditorElement element = spinEditor.EditorElement as RadSpinEditorElement;
                element.ShowUpDownButtons = false;
                e.Editor = spinEditor;



1 2 3 4 5 6