Completed
Last Updated: 31 Jan 2024 11:39 by ADMIN
Release 2024 Q1 (2024.1.130)

In this case, the culture of the application is different from the culture of the machine. In this particular case, both cultures have different long date time format strings. current format mm/dd/yyyy compare to the one which the control is loading dd/mm/yyyy.

As a workaround, we can apply InvariantCulture before loading the XML and return the previous one after this:

CultureInfo.CurrentCulture = CultureInfo.InvariantCulture;
grid.LoadLayout(xml);
CultureInfo.CurrentCulture = CultureInfo.GetCultureInfo("en-US");

 

Completed
Last Updated: 31 Jan 2024 11:39 by ADMIN
Release 2024 Q1 (2024.1.130)

When the columns are auto-generated, the way to modify the columns is to use the Columns collection. We could expose an event that will be called when the columns are auto-generating. From the event arguments, we could get the newly created column and replace with if needed or modify it. Similar to the CreateRow event of the control.

Completed
Last Updated: 31 Jan 2024 11:39 by ADMIN
Release 2024 Q1 (2024.1.130)
Created by: Walker
Comments: 2
Category: GridView
Type: Feature Request
3
Show summary row values in collapsed groups.
Unplanned
Last Updated: 24 Jan 2024 17:02 by ADMIN

To reproduce use the code below:

DataTable table = new DataTable();
for (int i = 0; i < 20; i++)
{
    table.Columns.Add("Left" + i, typeof(int));
    table.Columns.Add("Right" + i, typeof(int));
}

for (int i = 0; i < 27; i++)
{
    List<object> parameters = new List<object>();
    for (int j = 0; j < table.Columns.Count - 2; j++)
    {
        parameters.Add(100 * i + i);
    }

    table.Rows.Add(parameters.ToArray());
}

this.radGridView1.DataSource = table;

ColumnGroupsViewDefinition def = new ColumnGroupsViewDefinition();
for (int i = 0, j = 0; i < 20; i++)
{
    var group = new GridViewColumnGroup("Group" + 3 + i);
    def.ColumnGroups.Add(group);
    group.Groups.Add(new GridViewColumnGroup("0"));
    group.Groups[0].Rows.Add(new GridViewColumnGroupRow() { MinHeight = 30});
    group.Groups[0].Rows[0].ColumnNames.Add(this.radGridView1.Columns[j].Name);
    this.radGridView1.Columns[j].Width = 58;
    j++;
    group.Groups[0].Rows[0].ColumnNames.Add(this.radGridView1.Columns[j].Name);
    this.radGridView1.Columns[j].Width = 58;
    j++;
}

radGridView1.MasterTemplate.ShowRowHeaderColumn = false;
this.radGridView1.ViewDefinition = def;

// To Export:
GridViewPdfExport pdfExport = new GridViewPdfExport(this.radGridView1);
pdfExport.FitToPageWidth = false;
pdfExport.ExportViewDefinition = true;
pdfExport.ExportVisualSettings = true;
pdfExport.RunExport(@"..\..\pdf", new PdfExportRenderer());

This is the result on the second page. Overlapped groups header cells, overlapped data cells, which results in unreadable text.

  

Unplanned
Last Updated: 11 Dec 2023 13:41 by ADMIN
Created by: Ana
Comments: 1
Category: GridView
Type: Feature Request
1
Currently, the GridViewCheckBoxColumn is not synchronized with the selection mechanism of the control. Checking a checkbox will change the value of the bound property. Synchronizing the selection with the checkbox will require custom code. We could expose GridViewSelectionColumn or modify the GridViewCheckBoxColumn to support this.
Unplanned
Last Updated: 04 Dec 2023 13:12 by ADMIN
Hi,
There is a bug with your Grid decimal filtering when the FieldName matches the Name property for a different column. The filter is filtering on the column's Name instead of the FieldName. 
Completed
Last Updated: 11 Oct 2023 10:11 by ADMIN
Release R3 2023
Changes to the bonded ObservableCollection are not reflected in the control
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:

 

Unplanned
Last Updated: 04 Oct 2023 08:24 by ADMIN

There is a sample project attached and the result is illustrated below:

200%:

100%:

 

 

Unplanned
Last Updated: 02 Oct 2023 08:42 by ADMIN

When typing text in a new row in the RadGridView control with Windows 11 theme, the text appears to be moved down from the top of the row and makes it look like it is hidden, thus making it hard to see. 

I am using all the defaults of the RadGridView control with AutoSizeRows = true.

Completed
Last Updated: 16 Aug 2023 10:51 by ADMIN
Release R3 2023 (LIB 2023.2.816)

Please refer to the attached sample video.

StackTrace: 

Message: Object reference not set to an instance of an object.
Telerik.WinControls.UI.RadGridViewDragDropService.GetDragImageHint(ContentAlignment textAlignment, Bitmap hintImage, RectangleF textRectangle, Int32 hintImageWidth)
Telerik.WinControls.UI.ColumnChooserItem.GetDragHintCore()
Telerik.WinControls.RadItem.Telerik.WinControls.ISupportDrag.GetDragHint()
Telerik.WinControls.RadDragDropService.PrepareContext():80
Telerik.WinControls.RadDragDropService.HandleMouseMove(Point mousePos):40
Telerik.WinControls.UI.RadGridViewDragDropService.HandleMouseMove(Point mousePosition):13
Telerik.WinControls.RadDragDropService.Telerik.WinControls.IMessageListener.PreviewMessage(Message& msg):150
Telerik.WinControls.RadMessageFilter.NotifyGetMessageEvent(Message& msg):41
Telerik.WinControls.RadMessageFilter.GetMessageHookProc(Int32 code, IntPtr wParam, IntPtr lParam):36

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

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.
Completed
Last Updated: 18 Jul 2023 14:26 by ADMIN
Release R2 2023 SP1
This exception was caught when deleting the text in the search row letter by letter. Deleting the last letter leads to errors in some cases. Internally in the GridDataCellElement GetSearchHighlightRanges() method, the Text.Length property is used. However, when the Text is null an exception will be raised. So far this exception was not isolated in a sample project. Still, it could be consider adding a null check for the Text property of the cell.
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: 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.

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: 07 Jul 2023 08:27 by ADMIN
Created by: Ian
Comments: 1
Category: GridView
Type: Feature Request
0

By default, in the Property Builder for GridView, the defaults are:

Header Text Alignment = Middle Center

Text Alignment = Middle Left.

This means that EVERY time I create a new grid, I have to remember to make them both the same.

Why make them different? It makes the grid look rubbish whenthe defaults are used.

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