Completed
Last Updated: 20 May 2022 13:59 by ADMIN
Release R2 2022 SP1
Implement functionality to rotate the content of a cell.
Completed
Last Updated: 20 May 2022 13:35 by ADMIN
Release R2 2022 SP1

Run the attached project and click List then Export.

Expected:

Actual:

Workaround:

    Private Sub RadButton2_Click(sender As Object, e As EventArgs) Handles RadButton2.Click
        Dim spreadExporter As GridViewSpreadExport = New GridViewSpreadExport(gvAssetSchedule)
        AddHandler spreadExporter.CellFormatting, AddressOf spreadExporter_CellFormatting
        Dim exportRenderer As New SpreadExportRenderer()
        spreadExporter.ExportVisualSettings = True
        Dim filename = "..\..\export" & DateTime.Now.ToLongTimeString().Replace(":", "_") & ".xlsx"
        spreadExporter.RunExport(filename, exportRenderer)
        Process.Start(filename)
    End Sub

    Private Sub spreadExporter_CellFormatting(sender As Object, e As Telerik.WinControls.Export.CellFormattingEventArgs)
        If e.GridCellInfo Is Nothing Then
            Dim selection As CellSelection = e.CellSelection
            Dim range As CellRange = selection.CellRanges(0)
            Dim val = selection.Worksheet.Cells(range.FromIndex.RowIndex, range.FromIndex.ColumnIndex).GetValue()
            Dim format As New CellValueFormat("@")
            selection.Worksheet.Cells(range.FromIndex.RowIndex, range.FromIndex.ColumnIndex).SetFormat(format)
            Dim dt As New DateTime(1900, 1, 1)
            Dim parsedDays = 0
            If Integer.TryParse(val.Value.RawValue, parsedDays) Then
                dt = dt.AddDays(parsedDays)
                selection.Worksheet.Cells(range.FromIndex.RowIndex, range.FromIndex.ColumnIndex).SetValue(dt.Year & "-" & MonthName(dt.Month))
            End If
        End If
    End Sub

Unplanned
Last Updated: 18 May 2022 06:37 by Jane

Steps to reproduce:

1. Run the sample project and select a row inside the grid

2. Press Ctrl+B

The following error occur:

Workaround: set the EnableFastScrolling property to false.

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

Please refer to the below gif file. You will notice that the drop row line is shown only when dropping in the same grip but not when dropping on another grid:

Workaround: use the project in the following forum post: https://www.telerik.com/forums/preview-drop---drag-drop-between-gridview#5477699 

Unplanned
Last Updated: 22 Apr 2022 08:57 by Suresh

Use the following code: 

        public RadForm1()
        {
            InitializeComponent();

            DataTable dt = new DataTable();
            dt.Columns.Add("Id");
            dt.Columns.Add("Name");
            for (int i = 0; i < 10; i++)
            {
                dt.Rows.Add(i, "Item" + i); 
            }
            this.radGridView1.DataSource = dt; 
            this.radGridView1.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill; 
             
            this.radGridView1.CellValidating += radGridView1_CellValidating;
        }

        private void radGridView1_CellValidating(object sender, CellValidatingEventArgs e)
        {
            if (e.Column.Index == 0 && e.ActiveEditor != null && e.Value + "" == "1")
            { 
                e.Cancel = true;
                RadMessageBox.Show("IncorrectValue");
            }
        }

Follow the steps:

1. Scroll to the last row.

2. Enter value "1" in the first cell of the last row

3. Click the area above the scrollbar's thumb to trigger scrolling to the top. You will notice that the message box will be shown and the view will be scrolled. Once the message is closed, the error occurs.

Workaround: 

        public class CustomGridView : RadGridView
        {
            public override string ThemeClassName  
            { 
                get 
                { 
                    return typeof(RadGridView).FullName;  
                }
            }

            protected override void OnMouseDown(MouseEventArgs e)
            {
             RadScrollBarElement scrollbar=   this.GridViewElement.ElementTree.GetElementAtPoint ( e.Location) as RadScrollBarElement;
             if (scrollbar!=null && this.IsInEditMode)
             {
                    this.EditorManager.CloseEditorWhenValidationFails = false;
                    this.EditorManager.CloseEditor();
                    return;
             }
                base.OnMouseDown(e);
            }
        }

 

 

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: 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. 

Declined
Last Updated: 25 Mar 2022 11:39 by Ian
Created by: Ian
Comments: 6
Category: GridView
Type: Feature Request
0

Eery time I use the GridView, I have to remember to un-select the last item in the list.

This is almost always to wrong thing to be selected - so why select it by default?

..and the way to swith this 'feaure' off isn't obvious - I always have to look it up....RadGridView1.CurrentRow = Nothing

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;
    }
}

Unplanned
Last Updated: 21 Mar 2022 10:04 by ADMIN
To reproduce: please run the attached sample project and follow the steps illustrated in the attached gif file:

Scrolling to a newly added row does not work when inner templates are visible.

Add data to the inner templates of several rows near the bottom using the button.
Expand these inner templates so they are all visible.
Scroll back up to the top.
Add a new item to the outer grid normally.
The table will jump to where it things the new item is but will fall short, instead scrolling to a location in one of the inner templates.
Workaround:

        private void RadGridView1_UserAddedRow(object sender, GridViewRowEventArgs e)
        {
            foreach (GridViewRowInfo    row in this.radGridView1.Rows)
            {
                if (row.IsExpanded)
                {
                    row.IsExpanded = false;
                    row.IsExpanded = true;
                }
            }
        }
Unplanned
Last Updated: 03 Mar 2022 08:49 by Alessandro
Created by: Alessandro
Comments: 0
Category: GridView
Type: Feature Request
0

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);
            }
        }

 

    
Declined
Last Updated: 16 Feb 2022 05:23 by ADMIN
Created by: alex
Comments: 3
Category: GridView
Type: Feature Request
0

Hi. it was great to see the option "ImageOnly", for columns of small width, where only the image is placed in the header, and the "HederText" property was set, for the correct display of the grouping field

GridViewDataColumn column;

column.HeaderText = "Счет";

column.HeaderImage = ...; // some img

column.TextImageRelation = TextImageRelation.Overlay;



GridViewDataColumn column;

column.HeaderText = "";

column.HeaderImage = ...; // some img

column.TextImageRelation = TextImageRelation.Overlay;

it’s impossible to choose one thing, either an ugly header, or a grouping without a description

Unplanned
Last Updated: 14 Feb 2022 11:44 by Victor

Use the following code snippet:

            GridViewDateTimeColumn orderDate = this.radGridView1.Columns["OrderDate"] as GridViewDateTimeColumn;
            orderDate.Format = DateTimePickerFormat.Custom;
            orderDate.CustomFormat = "dd-MM-yyyy";
            orderDate.FormatString = "{0:dd-MM-yyyy}";


            GridViewDateTimeColumn shippedDate = this.radGridView1.Columns["ShippedDate"] as GridViewDateTimeColumn;
            shippedDate.Format = DateTimePickerFormat.Custom;
            shippedDate.CustomFormat = "dd-MM-yyyy";
            shippedDate.FormatString = "{0:dd-MM-yyyy}";

When the grid is grouped by a column with a specific format, it should be taken in consideration by the group row as well.

 

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: 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: 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: 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.

Unplanned
Last Updated: 25 Jan 2022 09:46 by ADMIN
The attached gif file illustrates the current behavior. Pressing Enter while editing the criteria nodes tries to submit the filter dialog even though the filter expression may not be valid.
In Development
Last Updated: 12 Jan 2022 08:59 by ADMIN

Steps to reproduce:

1. Bind the grid to BindingList

2. Call BestFitColumns method in form's constructor

3. Use Fluent/Crystal theme

4. Rebind the grid by setting DataSource=null

5. Exception is thrown

Stack trace:

en Telerik.WinControls.UI.BestFitHelper.SetColumnWidth(GridViewColumn column, Single desiredWidth)
   en Telerik.WinControls.UI.BestFitHelper.BestFitColumnCore(GridViewColumn column, BestFitColumnMode mode)
   en Telerik.WinControls.UI.BestFitHelper.ProcessRequests()
   en Telerik.WinControls.UI.GridTableElement.UpdateAll()
   en Telerik.WinControls.UI.GridTableElement.UpdateViewCore(Object sender, DataViewChangedEventArgs args)
   en Telerik.WinControls.UI.GridTableElement.UpdateView(Object sender, DataViewChangedEventArgs args)
   en Telerik.WinControls.UI.GridTableElement.ProcessTemplateEvent(GridViewEvent eventData)
   en Telerik.WinControls.UI.GridTableElement.Telerik.WinControls.UI.IGridViewEventListener.ProcessEvent(GridViewEvent eventData)
   en Telerik.WinControls.UI.GridViewEventProcessEntity.ProcessCollection(GridViewEvent gridEvent, PriorityWeakReferenceList list, GridEventProcessMode processMode)
   en Telerik.WinControls.UI.GridViewEventProcessEntity.ProcessEvent(GridViewEvent gridEvent)
   en Telerik.WinControls.UI.GridViewSynchronizationService.NotifyListeners(GridViewEvent gridEvent)
   en Telerik.WinControls.UI.GridViewSynchronizationService.FlushEvents()
   en Telerik.WinControls.UI.GridViewSynchronizationService.DispatchEvent(GridViewEvent gridEvent)
   en Telerik.WinControls.UI.GridViewSynchronizationService.DispatchEvent(GridViewTemplate template, GridViewEvent eventData, Boolean postUI)
   en Telerik.WinControls.UI.GridViewTemplate.DispatchEvent(GridViewEvent gridEvent, Boolean postUI)
   en Telerik.WinControls.UI.GridViewTemplate.DispatchDataViewChangedEvent(Object sender, DataViewChangedEventArgs args)
   en Telerik.WinControls.UI.GridViewTemplate.OnViewChanged(Object sender, DataViewChangedEventArgs e)
   en Telerik.WinControls.UI.MasterGridViewTemplate.OnViewChanged(Object sender, DataViewChangedEventArgs e)
   en Telerik.WinControls.UI.GridViewTemplate.CollectionView_CollectionChanged(Object sender, NotifyCollectionChangedEventArgs e)
   en Telerik.WinControls.Data.RadCollectionView`1.OnCollectionChanged(NotifyCollectionChangedEventArgs args)
   en Telerik.WinControls.Data.RadDataView`1.RebuildData(Boolean notify)
   en Telerik.WinControls.Data.RadDataView`1.RefreshOverride()
   en Telerik.WinControls.Data.RadDataView`1.ProcessCollectionChanged(NotifyCollectionChangedEventArgs args)
   en Telerik.WinControls.Data.RadCollectionView`1.source_CollectionChanged(Object sender, NotifyCollectionChangedEventArgs e)
   en Telerik.WinControls.Data.NotifyCollectionChangedEventHandler.Invoke(Object sender, NotifyCollectionChangedEventArgs e)
   en Telerik.WinControls.Data.RadListSource`1.OnCollectionChanged(NotifyCollectionChangedEventArgs e)
   en Telerik.WinControls.Data.RadListSource`1.EndUpdate(Boolean notifyUpdates)
   en Telerik.WinControls.Data.RadListSource`1.Initialize()
   en Telerik.WinControls.Data.RadListSource`1.Bind(Object dataSource, String dataMember)
   en Telerik.WinControls.Data.RadListSource`1.set_DataSource(Object value)
   en Telerik.WinControls.UI.GridViewTemplate.set_DataSource(Object value)
   en Telerik.WinControls.UI.RadGridView.set_DataSource(Object value)

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
1 2 3 4 5 6