Completed
Last Updated: 13 Apr 2022 11:08 by ADMIN
Release R2 2022

ComboBox column DataSource property is not visible in the Designer MS Property Builder when the previously selected node was RadGridView. 

Completed
Last Updated: 14 Apr 2022 08:26 by ADMIN
Release R2 2022

Steps to reproduce:

1.Run the attached sample project.

2.Group by the ProductID column

3.Select Page 4

4. Expand the top group row. You will notice that the grid jumps to a previous row.

Expected:

Actual:

Workaround:

 

        public class CustomGrid : RadGridView
        {
            public override string ThemeClassName
            {
                get
                {
                    return typeof(RadGridView).FullName;
                }
            }
            protected override void OnMouseDown(MouseEventArgs e)
            {
                GridExpanderItem expander = this.ElementTree.GetElementAtPoint(e.Location) as GridExpanderItem;
                if (expander != null)
                {
                    flag = true;
                }
                base.OnMouseDown(e);
            }

            protected override void OnMouseUp(MouseEventArgs e)
            {
                base.OnMouseUp(e);
                flag = false;
            }

            bool flag = false;

            protected override void OnPageChanging(object sender, PageChangingEventArgs e)
            {
                if (flag)
                {
                    e.Cancel = true;
                }
                base.OnPageChanging(sender, e);

            }
        }

 

Completed
Last Updated: 22 Mar 2022 13:50 by ADMIN
Release R2 2022 (LIB 2022.1.322)

When the RadGridView AutoSize property is set to true and a row is expanded, an exception is thrown:

System.InvalidOperationException: 'MeasureOverride returned positive infinity: Telerik.WinControls.UI.GridDetailViewRowElement'

 

A possible workaround is to replace the GridDetailViewRowElement with your own class. Then overriding the MeasureOverride method we can pass valid size to the element.

private void RadGridView1_CreateRow(object sender, GridViewCreateRowEventArgs e)
{
    if (e.RowInfo is GridViewDetailsRowInfo)
    {
        e.RowElement = new MyGridDetailViewRowElement();
    }
}

public class MyGridDetailViewRowElement : GridDetailViewRowElement
{
    protected override SizeF MeasureOverride(SizeF availableSize)
    {
        var baseSize =  base.MeasureOverride(availableSize);
        if(baseSize.Width == float.PositiveInfinity)
        {
            baseSize.Width = 800;
        }
        return baseSize;
    }
}

Completed
Last Updated: 12 Feb 2025 12:42 by ADMIN
Release 2025.1.211 (2025 Q1)
Created by: Alessandro
Comments: 0
Category: GridView
Type: Feature Request
2

With releasing .NET 6, there are TimeOnly and DateOnly types which would be more appropriate for managing such values:

https://devblogs.microsoft.com/dotnet/date-time-and-time-zone-enhancements-in-net-6/

It would be good to add support for these types in GridViewDateTimeView.

Currently, the following code gives an exception when entering edit mode: 

        public RadForm1()
        {
            InitializeComponent();
            DataTable dt = new DataTable();
            dt.Columns.Add("DateOnly", typeof(DateOnly));
            dt.Rows.Add(new DateOnly(2022,3,3));

            this.radGridView1.AutoGenerateColumns = false;
            GridViewDateTimeColumn dateColumn = new GridViewDateTimeColumn();
            dateColumn.FieldName = "DateOnly";
            this.radGridView1.Columns.Add(dateColumn);
            this.radGridView1.DataSource = dt;
            this.radGridView1.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill;
        }

 

 

Workaround: you can use the following custom TypeConverter

        public RadForm1()
        {
            InitializeComponent();
            DataTable dt = new DataTable();
            dt.Columns.Add("DateOnly", typeof(DateOnly));
            dt.Rows.Add(new DateOnly(2022,3,3));

            this.radGridView1.AutoGenerateColumns = false;
            GridViewDateTimeColumn dateColumn = new GridViewDateTimeColumn();
            dateColumn.DataType = typeof(DateTime);
            dateColumn.FieldName = "DateOnly";
            dateColumn.Format = DateTimePickerFormat.Custom;
            dateColumn.CustomFormat = "dd/MM/yyyy";
            dateColumn.FormatString = "{0:dd/MM/yyyy}";
            dateColumn.DataTypeConverter = new DateOnlyConverter();
            this.radGridView1.Columns.Add(dateColumn);
            this.radGridView1.DataSource = dt;
            this.radGridView1.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill;
        }


        public class DateOnlyConverter : TypeConverter
        {
            public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType)
            { 
                return destinationType == typeof(DateTime);
            }
            public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType)
            { 
                if (value is DateOnly && destinationType == typeof(DateTime))
                {
                    DateOnly date = (DateOnly)value;
                    return new DateTime(date.Year, date.Month, date.Day);
                }
                
                return base.ConvertTo(context, culture, value, destinationType);
            }
            public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)
            { 
                return sourceType == typeof(DateTime) ;
            }
            public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
            { 
                if (value is DateTime)
                {
                    DateTime date = (DateTime)value;
                    return new DateOnly(date.Year, date.Month, date.Day);
                }
                
                return base.ConvertFrom(context, culture, value);
            }
        }

 

    
Completed
Last Updated: 03 Feb 2022 08:02 by ADMIN
Release R1 2022 SP1
Workaround:
Call the EndPrint method after the printing.
this.radGridView1.Print(true, this.radPrintDocument1);
(this.radGridView1 as IPrintable).EndPrint(null, null);
Completed
Last Updated: 26 Jan 2022 10:32 by ADMIN
Release R1 2022 SP1

Please refer to the sample project and open the Home form. The attached gif file illustrates how to reproduce the error.

Workaround: define the grid relations via code.

Completed
Last Updated: 26 Jan 2022 10:33 by ADMIN
Release R1 2022 SP1

Use this XML layout: 

 

this.radGridView1.LoadLayout(@"..\..\..\Layout.xml");

 

 

<RadGridView Padding="0, 0, 0, 1" Cursor="Default" TabIndex="49">
<MasterTemplate EnableGrouping = "True" AllowEditRow="False" AllowDeleteRow="False" AllowAddNewRow="False" EnableFiltering="True" AutoExpandGroups="True">
<Columns>
<Telerik.WinControls.UI.GridViewTextBoxColumn Width="100" FieldName="JobID" Name="JobID" IsAutoGenerated="True" IsVisible="True" HeaderText="JobID" />
<Telerik.WinControls.UI.GridViewTextBoxColumn Width="100" FieldName="CustomerID" Name="CustomerID" IsAutoGenerated="True" IsVisible="True" HeaderText="CustomerID" />
<Telerik.WinControls.UI.GridViewTextBoxColumn Width="285" FieldName="StatusID" Name="StatusID" IsAutoGenerated="True" IsVisible="True" HeaderText="StatusID" />
<Telerik.WinControls.UI.GridViewTextBoxColumn Width="100" FieldName="UnitID" Name="UnitID" IsAutoGenerated="True" IsVisible="True" HeaderText="UnitID" />
<Telerik.WinControls.UI.GridViewTextBoxColumn Width="100" FieldName="OperatorID" Name="OperatorID" IsAutoGenerated="True" IsVisible="True" HeaderText="OperatorID" />
<Telerik.WinControls.UI.GridViewTextBoxColumn Width="100" FieldName="JobTypeID" Name="JobTypeID" IsAutoGenerated="True" IsVisible="True" HeaderText="JobTypeID" />
<Telerik.WinControls.UI.GridViewTextBoxColumn Width="100" FieldName="JobCatID" Name="JobCatID" IsAutoGenerated="True" IsVisible="True" HeaderText="JobCatID" />
<Telerik.WinControls.UI.GridViewDateTimeColumn Width="100" FieldName="StartTime" Name="StartTime" IsAutoGenerated="True" IsVisible="True" HeaderText="StartTime">
<FilterDescriptor xsi:type="Telerik.WinControls.Data.DateFilterDescriptor" Value="" IgnoreTimePart="False" PropertyName="StartTime" Operator="IsNotNull" IsFilterEditor="True" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" />
</Telerik.WinControls.UI.GridViewDateTimeColumn>
<Telerik.WinControls.UI.GridViewDateTimeColumn Width="100" FieldName="FinishTime" Name="FinishTime" IsAutoGenerated="True" IsVisible="True" HeaderText="FinishTime" />
<Telerik.WinControls.UI.GridViewDateTimeColumn Width="100" FieldName="CreateDate" Name="CreateDate" SortOrder="Descending" IsAutoGenerated="True" IsVisible="True" HeaderText="CreateDate" />
<Telerik.WinControls.UI.GridViewDateTimeColumn Width="100" FieldName="StatusJobDate" Name="StatusJobDate" IsAutoGenerated="True" IsVisible="True" HeaderText="StatusJobDate" />
<Telerik.WinControls.UI.GridViewTextBoxColumn Width="100" FieldName="UserID" Name="UserID" IsAutoGenerated="True" IsVisible="True" HeaderText="UserID" />
<Telerik.WinControls.UI.GridViewTextBoxColumn DataType="System.Guid" Width="100" FieldName="TableKey" Name="TableKey" IsAutoGenerated="True" IsVisible="False" HeaderText="TableKey" />
</Columns>
<FilterDescriptors>
<Telerik.WinControls.Data.DateFilterDescriptor Value="" IgnoreTimePart="False" PropertyName="StartTime" Operator="IsNotNull" IsFilterEditor="True" />
</FilterDescriptors>
<SortDescriptors>
<Telerik.WinControls.Data.SortDescriptor PropertyName="CreateDate" Direction="Descending" />
</SortDescriptors>
<ViewDefinition xsi:type="Telerik.WinControls.UI.TableViewDefinition" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" />
</MasterTemplate>
</RadGridView>

Workaround: 

public class CustomGridView : RadGridView
{
    protected override GridViewLayoutSerializer CreateGridViewLayoutSerializer(Telerik.WinControls.XmlSerialization.ComponentXmlSerializationInfo info)
    {
        return new CustomGridViewLayoutSerializer(info);
    }
    public override string ThemeClassName
    {
        get
        {
            return typeof(RadGridView).FullName;
        }
    }
}

public class CustomGridViewLayoutSerializer : GridViewLayoutSerializer
{ 
    public CustomGridViewLayoutSerializer(ComponentXmlSerializationInfo componentSerializationInfo) : base(componentSerializationInfo)
    {
    }

    protected override bool ProcessReaderAttribute(System.Xml.XmlReader reader, object parentObject, object toRead, PropertyDescriptor property)
    {
        if (toRead is FilterDescriptor && reader.Value == string.Empty)
        {
            object val = reader.Value;
            if (property.ComponentType == typeof(DateFilterDescriptor))
            {
                val = null;
            }
            
            this.SetPropertyValue(property, toRead, val);
            return true;
        }

        return base.ProcessReaderAttribute(reader, parentObject, toRead, property);
    }
}

 

Completed
Last Updated: 06 Jun 2022 09:31 by ADMIN
Release R2 2022 (LIB 2022.2.606)

When we have column groups with equal names, the Spread Export is not exporting the groups correctly. This will lead to incorrectly merged cells.

A possible workaround is to assure that all column groups have different strings for their Text property.

Completed
Last Updated: 02 Feb 2022 16:50 by ADMIN
Release R1 2022 SP1

Please run the sample project and follow the steps:

1.Open the attached solution in Visual Studio - I am using VS 2022.
2.Select the Grid.
3.Edit the templates.
4.For gridViewTemplate1, set SelectNewRowasCurrent to false.
5.Close the editor.
6.Close the WinForms designer.
7.Open the WinForms designer again.
Completed
Last Updated: 06 Jan 2022 16:09 by ADMIN
Release R1 2022
StackOverflow exception is thrown in Self-Referencing mode when deleting a child and its parent row
Completed
Last Updated: 09 Nov 2021 10:13 by ADMIN
Release R3 2021 SP1

To reproduce, rebind the grid to a data table on button click and show grid's search row.

public RadForm1()
{
    InitializeComponent();
    this.radGridView1.AllowSearchRow = true;
}

private void RadButton1_Click()
{
    DataTable dt = this.GetData();
    this.radGridView1.DataSource = dt;
}
private DataTable GetData()
{
    DataTable data = new DataTable();
    for (int i = 0; i < 5; i++)
    {
        data.Columns.Add("Column " + i, typeof(int));
        data.Columns.Add("Column " + i + 1, typeof(string));
        data.Columns.Add("Column " + i + 2, typeof(string));
    }

    for (int k = 0; k < 5000; k++)
    {
        object[] parameters = new object[15];
        for (int i = 0; i < 15; i += 3)
        {
            parameters[i] = k;
            parameters[i + 1] = "Text " + i;
            parameters[i + 2] = "Text " + i + 1;
        }

        data.Rows.Add(parameters);
    }

    return data;
}

Completed
Last Updated: 09 Dec 2021 10:37 by ADMIN
Release R1 2022
When I add a GridViewComboBoxColumn, if I browse the grid and I arrive at GridViewComboBoxColumn, the screen reader reads the ValueMember data instead of the DisplayMember.
If I press F2 key and browse the ComboBox, the control works perfectly, better than the Microsoft Windows Forms ComboBox.
Completed
Last Updated: 08 Oct 2021 15:04 by ADMIN
Release R3 2021 SP1
Created by: Ben
Comments: 1
Category: GridView
Type: Bug Report
0

Hi There,

 

This call is only a nice to have, it is not critical at all. It is just a slight annoyance when building the Grid's columns - especially when there are many columns to adjust. My workflow is usually as follow. 

 

Add all the columns needed, then after that I will run through all the columns and want to set the widths. But my speed is broken because I can't tab between the 3 width properties: Width, Min Width, Max Width. I have to click to put focus the the next value.

 

If possible, please can you correct the tab indexes?

 

Thank you

Kind Regards

Ben

 

PS. You may close this ticket immediately - this is only a request.

Completed
Last Updated: 05 Aug 2021 14:10 by ADMIN
Release R3 2021
  1. Filter the column "code" to show only "(Blanks)"
  2. Hit the "Save Layout" button to save the layout into a string
  3. Hit the "Load Layout" button. The row is gone
 
Completed
Last Updated: 29 Jul 2021 07:05 by ADMIN
Release R3 2021
Add the option to set the EndEditOnLostFocus of BaseGridEditor.
Completed
Last Updated: 22 Jun 2021 17:27 by ADMIN
Release R3 2021

Use the following code snippet:

https://docs.telerik.com/devtools/winforms/styling-and-appearance/using-a-default-theme-for-the-entire-application#enabledisable-the-globally-set-theme-for-a-specific-control 

 

            ThemeResolutionService.ApplicationThemeName = "MaterialPink";
            radGridView1.ElementTree.EnableApplicationThemeName = false;
            radGridView1.ThemeName = "FluentDark";

Workaround:

        private void radGridView1_CellEditorInitialized(object sender, GridViewCellEventArgs e)
        {
            RadDropDownListEditor ddlEditor = e.ActiveEditor as  RadDropDownListEditor;
            if (ddlEditor != null)
            {
                RadDropDownListEditorElement el = ddlEditor.EditorElement as RadDropDownListEditorElement;
                el.Popup.ElementTree.EnableApplicationThemeName = false;
                el.Popup.ThemeName = this.radGridView1.ThemeName;
            }
        }

Completed
Last Updated: 02 Aug 2021 08:33 by ADMIN
Release R3 2021 (LIB 2021_2_802)
We're trying to apply a filter to data that may contain infinity values but it is not working.
Completed
Last Updated: 22 Jun 2021 17:34 by ADMIN
Release R3 2021
I have a RadGridView that has expandable rows. If I expand the row, start editing an editable cell and then, without committing the edit (by pressing enter or clicking away from the cell), collapse the row, the program crashes with roughly the following stack trace:


Stack Trace:
   at System.Collections.ArrayList.BinarySearch(Int32 index, Int32 count, Object value, IComparer comparer)
   at Telerik.WinControls.UI.TextBoxWrapPanel.BinarySearch(LineInfo line, IComparer comparer)
   at Telerik.WinControls.UI.TextBoxNavigator.GetPositionFromOffset(Int32 offset)
   at Telerik.WinControls.UI.RadTextBoxControlElement.Select(Int32 start, Int32 length)
   at Telerik.WinControls.UI.RadTextBoxControlEditor.EndEdit()
   at Telerik.WinControls.UI.GridViewEditManager.EndEditCore(Boolean validate, Boolean cancel)
   at Telerik.WinControls.UI.GridViewEditManager.CloseEditor()
Completed
Last Updated: 11 Jun 2021 10:52 by ADMIN
Release R2 2021 SP1

Please refer to the attached sample project and follow the steps from the grid file:

Steps to reproduce:
1. Filter the checkbox column to only show unchecked rows
2. Enter "5" for filtering the Name column
3. Click the checkbox column on the bottom row
4. Remove filter value in the Name column
This will result in the unrelated record showing as checked. Scrolling or changing sorting may refresh the cell. If the  filter is cleared by using the No filter menu option, the problem is not observed