Declined
Last Updated: 27 Jul 2023 12:43 by ADMIN
When the FreeFormDateTime mask type is used with the RadDateTimeEditor, the Validate method is not called again after entering an invalid value. Even if we type a valid date afterward, the control rollback to the previous value of the cell.
Unplanned
Last Updated: 13 Jun 2023 13:56 by ADMIN
Column headers and summary row color are not exported in all themes when using GridViewSpreadExport. For example, in Office2010Blue theme, the color of the column headers and summary row is not applied to the cell in exported file.
Completed
Last Updated: 16 Aug 2023 10:51 by ADMIN
Release R3 2023 (LIB 2023.2.816)

Code snippet for reproducing the error: 

            DataTable dt = new DataTable();
            dt.Columns.Add("Id", typeof(int));
            dt.Columns.Add("Title", typeof(string));
            dt.Columns.Add("Price", typeof(decimal));

            for (int i = 0; i < 10; i++)
            {
                dt.Rows.Add(i, "Row" + i, 0);
            }

            this.radGridView1.DataSource = dt;
            this.radGridView1.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill;

            GridViewSummaryItem summaryItem = new GridViewSummaryItem();
            summaryItem.Name = "Price";
            summaryItem.Aggregate = GridAggregateFunction.StDev;
            GridViewSummaryRowItem summaryRowItem = new GridViewSummaryRowItem();
            summaryRowItem.Add(summaryItem); 
            this.radGridView1.SummaryRowsBottom.Add(summaryRowItem);

Completed
Last Updated: 18 Jul 2023 14:26 by ADMIN
Release R2 2023 SP1

With the current implementation, you can drop a column from the ColumnChooser window into the row. The column will be added to a place that reflects its position in the RadGridView Columns collection. 

Completed
Last Updated: 11 Oct 2023 10:09 by ADMIN
Release R3 2023

To reproduce:

      public RadForm1()
      {
         InitializeComponent();
         PopulateGrid();
      }

      private void radButton1_Click(object sender, EventArgs e)
      {
         GridViewSpreadExport spreadExporter = new GridViewSpreadExport(this.radGridView1);
         SpreadExpo

rtRenderer exportRenderer = new SpreadExportRenderer();
         spreadExporter.ExportHierarchy = true;
         spreadExporter.ExportVisualSettings = true;
         spreadExporter.ChildViewExportMode = Telerik.WinControls.UI.Export.ChildViewExportMode.ExportAllViews;

         string fileName = @"..\..\exportedFile" + DateTime.Now.ToLongTimeString().Replace(":", "_") + ".xlsx";
         spreadExporter.RunExport(fileName, exportRenderer);
         Process.Start(fileName);
      }

      public void PopulateGrid()
      {
         List<GridResults.ChildCollectionFirst> firstCollection = new List<GridResults.ChildCollectionFirst>
         {
            new GridResults.ChildCollectionFirst
            {
               Test1 = "First Child"
            }
         }.ToList();

         List<GridResults.ChildCollectionSecond> secondCollection = new List<GridResults.ChildCollectionSecond>
         {
            new GridResults.ChildCollectionSecond
            {
               Test2 = "Second Child"
            }
         }.ToList();

         List<GridResults.ChildCollectionThird> thirdCollection = new List<GridResults.ChildCollectionThird>
         {
            new GridResults.ChildCollectionThird
            {
               Test3 = "Third Child"
            }
         }.ToList();

         List<GridResults.ChildCollectionFourth> fourthCollection = new List<GridResults.ChildCollectionFourth>
         {
            new GridResults.ChildCollectionFourth
            {
               Test4 = "Fourth Child"
            }
         }.ToList();


         var resultsList = new List<GridResults>
         {



            new GridResults
            {
               Id = "First Parent",
               Value = "Test Value 1",
               ChildCollection1 = new List<GridResults.ChildCollectionFirst>(),

               ChildCollection2 = new List<GridResults.ChildCollectionSecond>(),

               ChildCollection3 = new List<GridResults.ChildCollectionThird>(),

               ChildCollection4 = new List<GridResults.ChildCollectionFourth>()
            },
            new GridResults
            {
               Id = "Second Parent",
               Value = "Test Value 2",
               ChildCollection1 = firstCollection,

               ChildCollection2 = secondCollection,

               ChildCollection3 = thirdCollection,

               ChildCollection4 = fourthCollection
            },

            new GridResults
            {
            Id = "Third Parent",
            Value = "Test Value 3",
            ChildCollection1 = new List<GridResults.ChildCollectionFirst>(),

            ChildCollection2 = new List<GridResults.ChildCollectionSecond>(),

            ChildCollection3 = new List<GridResults.ChildCollectionThird>(),

            ChildCollection4 = new List<GridResults.ChildCollectionFourth>()
         },
            new GridResults
            {
               Id = "Fourth Parent",
               Value = "Test Value 4",
               ChildCollection1 = new List<GridResults.ChildCollectionFirst>(),

               ChildCollection2 = new List<GridResults.ChildCollectionSecond>(),

               ChildCollection3 = new List<GridResults.ChildCollectionThird>(),

               ChildCollection4 = new List<GridResults.ChildCollectionFourth>()
            },
            new GridResults
            {
            Id = "Fifth Parent",
            Value = "Test Value 5",
            ChildCollection1 = new List<GridResults.ChildCollectionFirst>(),

            ChildCollection2 = new List<GridResults.ChildCollectionSecond>(),

            ChildCollection3 = new List<GridResults.ChildCollectionThird>(),

            ChildCollection4 = new List<GridResults.ChildCollectionFourth>()
         },
         new GridResults
         {
            Id = "Sixth Parent",
            Value = "Test Value 6",
            ChildCollection1 = new List<GridResults.ChildCollectionFirst>(),

            ChildCollection2 = new List<GridResults.ChildCollectionSecond>(),

            ChildCollection3 = new List<GridResults.ChildCollectionThird>(),

            ChildCollection4 = new List<GridResults.ChildCollectionFourth>()
         }

         };
      //   radGridView1.BeginUpdate();
         radGridView1.DataSource = resultsList;
      //   radGridView1.EndUpdate();

            foreach (GridViewTemplate t in this.radGridView1.Templates)
            {
                t.AutoSizeColumnsMode= GridViewAutoSizeColumnsMode.Fill;
            }
      }

   public class GridResults
   {
      [DisplayName("ID")]
      public string Id { get; set; }

      [DisplayName("Value")]
      public string Value { get; set; }

      [DisplayName("Child Collection 1")]
      public List<ChildCollectionFirst> ChildCollection1 { get; set; }

      [DisplayName("Child Collection 2")]
      public List<ChildCollectionSecond> ChildCollection2 { get; set; }

      [DisplayName("Child Collection 3")]
      public List<ChildCollectionThird> ChildCollection3 { get; set; }

      [DisplayName("Child Collection 4")]
      public List<ChildCollectionFourth> ChildCollection4 { get; set; }

      [DisplayName("Child Collection 1")]
      public class ChildCollectionFirst
      {
         [DisplayName("Test Header")]
         public string Test1 { get; set; }
      }

      [DisplayName("Child Collection 2")]
      public class ChildCollectionSecond
      {
         [DisplayName("Test Header 2")]
         public string Test2 { get; set; }
      }

      [DisplayName("Child Collection 3")]
      public class ChildCollectionThird
      {
         [DisplayName("Test Header 3")]
         public string Test3 { get; set; }
      }

      [DisplayName("Child Collection 4")]
      public class ChildCollectionFourth
      {
         [DisplayName("Test Header 4")]
         public string Test4 { get; set; }
      }
   }

The observed result with duplicated rows is demonstrated here:

 

Completed
Last Updated: 7 Jun 2023 10:38 by ADMIN
Release R2 2023 (2023.2.606)

Use the code below and click the button to make the grid ReadOnly:

        public TestForm()
        {        
            InitializeComponent(); 
          
             GridViewCheckBoxColumn checkBoxColumn = new GridViewCheckBoxColumn("checkbox");
            checkBoxColumn.EnableHeaderCheckBox = true;
            this.radGridView1.Columns.Add(checkBoxColumn);
            this.radGridView1.Columns.Add("text");
            this.Shown += TestForm_Shown;
        }

        private void TestForm_Shown(object sender, EventArgs e)
        {
            this.radGridView1.Columns["checkbox"].IsVisible = !this.radGridView1.Columns["checkbox"].IsVisible;
        }

        private void radButton1_Click(object sender, EventArgs e)
        {
           
            this.radGridView1.ReadOnly = !this.radGridView1.ReadOnly;
        }

Unplanned
Last Updated: 25 May 2023 10:09 by ADMIN

To reproduce:

        public RadForm1()
        {
            InitializeComponent();

            this.radGridView1.Columns.Add("Telerik");
            this.radGridView1.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill;
            for (int i = 0; i < 10; i++)
            {
                this.radGridView1.Rows.Add(Guid.NewGuid().ToString());
            }
        }

        private void radButton1_Click(object sender, EventArgs e)
        {
            RadPrintDocument document = new RadPrintDocument();
            document.DefaultPageSettings.Landscape = false;  
            this.radGridView1.PrintPreview(document);
        }

Step 1: Open Print Settings dialog:

Step 2: Change the Orientation to Landscape:

Step 3: Click directly the Print button here. Once the default Print dialog is opened choose Preferences:

Step 4: You will notice that the Orientation is still Portrait instead of Landscape:

Completed
Last Updated: 18 Jul 2023 14:26 by ADMIN
Release R2 2023 SP1

Code to replicate the issue: 

            GridPrintStyle style = new GridPrintStyle();
            style.PrintHierarchy = true;
            style.HierarchyIndent = 0;
            style.ChildViewPrintMode = ChildViewPrintMode.SelectViewToPrint;
            this.radGridView1.PrintStyle = style;

            this.radGridView1.PrintPreview();

The attached gif file illustrates how the 20px hierarchy indent is returned after hitting the preview button.

Unplanned
Last Updated: 26 Apr 2023 10:39 by ADMIN
Currently, the RadSyntaxEditor control will preserve every change applied to its document. We could expose a mechanism to modify the undo/redo stack or suspend/resume the undo operation, thus allowing us to store only valuable changes.
Completed
Last Updated: 7 Jun 2023 10:38 by ADMIN
Release R2 2023 (2023.2.606)
In this case, the RadGridVew is bound to a BindingSource. Filtering the grid will apply the same filter expression to the BindingSource. When we try to clear the filter from the Popup, it will set an empty string to the Filter property of the BindingSource. At that moment NullReferenceException is thrown.
Unplanned
Last Updated: 21 Apr 2023 07:34 by ADMIN
In this case, the MultiSelect property is set to true and the SelectionMode is targeting CellSelect. In general, holding the Ctrl key and clicking a cell will select cells in different positions. However, if we hold the Ctrl key and use the Up/Down arrow key to change the current cell, the current cell won't be changed. Only Left/Right arrow keys are working as expected.
Completed
Last Updated: 13 Apr 2023 08:24 by ADMIN
Release R2 2023 (LIB 2023.1.413)
Created by: Shreya
Comments: 1
Category: GridView
Type: Bug Report
0
With the 2023.1.314 version of our controls, the RadGridView: GetClipboardContent() method returns null. It should return the DataObject.
Unplanned
Last Updated: 3 Mar 2023 09:41 by ADMIN

When the font size of the OK and Cancel buttons inside the Excel-like filtering popup is increased, the buttons are cut.

Unplanned
Last Updated: 1 Mar 2023 15:23 by ADMIN

When the GridViewComboBoxColumn is added for the master level, once the FieldName property is set, the DataType is synced with its type:

However, for the child levels, this logic is not executed automatically.

 

Unplanned
Last Updated: 1 Mar 2023 14:00 by ADMIN

Steps to reproduce:

1. Add a RadGridView with AutoGenerateHierarchy set to true.

2. Set the DataSource to Northwind DataSet and DataMember to Categories:

3. Open the grid's Property Builder and add a combo column for the child level:

4. Set the column's DataSource property.


Expected behavior: DataSource collection is properly set:

Actual behavior: blank property grid with settings for the column:

 

Unplanned
Last Updated: 27 Feb 2023 10:03 by ADMIN
Created by: Paul
Comments: 1
Category: GridView
Type: Bug Report
0

When paging is enabled in RadGridView and a row is pinned, it is visible among all pages. However, it is possible to paste in it only from the page to which it originally belongs.

Use the following setup: 

            DataTable dt = new DataTable();
            dt.Columns.Add("Id", typeof(int));
            dt.Columns.Add("Name", typeof(string));
            for (int i = 0; i < 100; i++)
            {
                dt.Rows.Add(i, "Row" + i);
            }
            this.radGridView1.DataSource = dt;
            this.radGridView1.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill;
            this.radGridView1.ClipboardPasteMode = GridViewClipboardPasteMode.EnableWithNotifications;

            this.radGridView1.EnablePaging = true;

1. Copy the entire content of a random row

2. Navigate to another page and pin a row

3. Change the page and try to paste the clipboard content to the pinned row

Expected behavior: the content is successfully pasted no matter of the current page

Actual behavior: the content is pasted only if the use navigates to the page to which the pinned row originally belongs

Unplanned
Last Updated: 27 Feb 2023 09:52 by ADMIN

Use the following setup:

            DataTable dt = new DataTable();
            dt.Columns.Add("Id", typeof(int));
            dt.Columns.Add("Name", typeof(string));
            for (int i = 0; i <5; i++)
            {
                dt.Rows.Add(i, "Row"+i);
            }
            this.radGridView1.DataSource = dt;
            this.radGridView1.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill;
            this.radGridView1.ClipboardPasteMode = GridViewClipboardPasteMode.Enable;

1. Copy the entire content of a random row.

2. Pin another row to the top

3. Paste the clipboard data to the pinned row

Expected result: the content is successfully pasted in the pinned row.

Observed result: the pinned row disappears.

Completed
Last Updated: 27 Apr 2023 06:55 by ADMIN
Release R2 2023 (LIB 2023.1.427)
This is reproducible when the ShowGroupedColumns is set to true. In this case, you can sort the group column by clicking on the column header or clicking on the group cell in the group panel. In this case, by clicking the column header, the user can only sort the column in descending mode.
Completed
Last Updated: 18 Jul 2023 14:26 by ADMIN
Release R2 2023 SP1

The following article shows how to attach the source code to your project:

https://docs.telerik.com/devtools/winforms/knowledge-base/attach-telerik-source-code-to-your-project 

When attaching the .NETCore projects (latest version R1 2023) to your application, the project can't be built.

Unplanned
Last Updated: 17 Jan 2023 12:51 by ADMIN

In this case, we have GridViewTextBoxColumn and GridViewComboBoxColumn after it. We want to trigger the edit on the second column at the moment it is navigated with the key arrow navigation. To do that BeginEdit() method is called. However, manually calling this method will trigger key events on the editor inside the GridViewComboBoxColumn which will bubble to the parent and move the current cell to the next column (skipped the GridViewComboBoxColumn )

This behavior could be workaround by delaying the execution of the BeginEdit() method.

public class CustomGridBehavior : BaseGridBehavior
{
    Timer timer = new Timer();        
    public override bool ProcessKey(KeyEventArgs keys)
    {
        var result = base.ProcessKey(keys);
        if((keys.KeyCode == Keys.Left || keys.KeyCode == Keys.Right) && this.GridControl.CurrentColumn is GridViewComboBoxColumn)
        {
            timer.Interval = 100;
            timer.Tick += Timer_Tick;
            timer.Start();                
        }
        return true;
    }

    private void Timer_Tick(object sender, EventArgs e)
    {
        timer.Stop();
        this.GridControl.BeginEdit();
    }
}

this.radGridView1.GridBehavior = new CustomGridBehavior();