Completed
Last Updated: 20 Nov 2018 11:03 by Dimitar
To reproduce: use the following code snippet:

    Sub New()

        InitializeComponent()

        Dim view As New ColumnGroupsViewDefinition()
        view.ColumnGroups.Add(New GridViewColumnGroup("Customer Contact"))
        view.ColumnGroups.Add(New GridViewColumnGroup("Details"))
        view.ColumnGroups(1).Groups.Add(New GridViewColumnGroup("Address"))
        view.ColumnGroups(1).Groups.Add(New GridViewColumnGroup("Contact"))
        view.ColumnGroups(0).Rows.Add(New GridViewColumnGroupRow())
        view.ColumnGroups(0).Rows(0).ColumnNames.Add("CompanyName")
        view.ColumnGroups(0).Rows(0).ColumnNames.Add("ContactName")
        view.ColumnGroups(0).Rows(0).ColumnNames.Add("ContactTitle")
        view.ColumnGroups(1).Groups(0).Rows.Add(New GridViewColumnGroupRow())
        view.ColumnGroups(1).Groups(0).Rows(0).ColumnNames.Add("Address")
        view.ColumnGroups(1).Groups(0).Rows(0).ColumnNames.Add("City")
        view.ColumnGroups(1).Groups(0).Rows(0).ColumnNames.Add("Country")
        view.ColumnGroups(1).Groups(1).Rows.Add(New GridViewColumnGroupRow())
        view.ColumnGroups(1).Groups(1).Rows(0).ColumnNames.Add("Phone")
        view.ColumnGroups(1).Groups(1).Rows(0).ColumnNames.Add("Fax")
        RadGridView1.ViewDefinition = view 


    End Sub

    Private Sub RadForm1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Me.CustomersTableAdapter.Fill(Me.NwindDataSet.Customers)
        Me.RadGridView1.BestFitColumns(BestFitColumnMode.AllCells)

        RadGridView1.Columns("Fax").IsVisible = False
        RadGridView1.Columns("Phone").IsVisible = False
        
        Dim spreadExporter As GridViewSpreadExport = New GridViewSpreadExport(Me.RadGridView1)
        Dim exportRenderer As New SpreadExportRenderer()
        spreadExporter.HiddenColumnOption = Export.HiddenOption.ExportAsHidden
        spreadExporter.FreezeHeaderRow = True
        spreadExporter.ExportGroupedColumns = True
        spreadExporter.ExportChildRowsGrouped = True
        spreadExporter.ExportVisualSettings = True
        spreadExporter.ExportHierarchy = True
        spreadExporter.ExportViewDefinition = True
        spreadExporter.ExportFormat = SpreadExportFormat.Xlsx
        Dim fileName = "..\..\export" & DateTime.Now.ToLongTimeString().Replace(":", "_") & ".xlsx"
        
        spreadExporter.RunExport(fileName, exportRenderer)
        Process.Start(fileName)
    End Sub

Workaround: instead of hiding all the columns inside a group, hide the entire group: 

    Sub New()

        InitializeComponent()

        Dim view As New ColumnGroupsViewDefinition()
        view.ColumnGroups.Add(New GridViewColumnGroup("Customer Contact"))
        view.ColumnGroups.Add(New GridViewColumnGroup("Details"))
        view.ColumnGroups(1).Groups.Add(New GridViewColumnGroup("Address"))
        view.ColumnGroups(1).Groups.Add(New GridViewColumnGroup("Contact"))
        view.ColumnGroups(0).Rows.Add(New GridViewColumnGroupRow())
        view.ColumnGroups(0).Rows(0).ColumnNames.Add("CompanyName")
        view.ColumnGroups(0).Rows(0).ColumnNames.Add("ContactName")
        view.ColumnGroups(0).Rows(0).ColumnNames.Add("ContactTitle")
        view.ColumnGroups(1).Groups(0).Rows.Add(New GridViewColumnGroupRow())
        view.ColumnGroups(1).Groups(0).Rows(0).ColumnNames.Add("Address")
        view.ColumnGroups(1).Groups(0).Rows(0).ColumnNames.Add("City")
        view.ColumnGroups(1).Groups(0).Rows(0).ColumnNames.Add("Country")
        view.ColumnGroups(1).Groups(1).Rows.Add(New GridViewColumnGroupRow())
        view.ColumnGroups(1).Groups(1).Rows(0).ColumnNames.Add("Phone")
        view.ColumnGroups(1).Groups(1).Rows(0).ColumnNames.Add("Fax")
        RadGridView1.ViewDefinition = view


        view.ColumnGroups(1).Groups.Last().IsVisible=False 


    End Sub
Completed
Last Updated: 05 Feb 2019 14:29 by ADMIN
To reproduce: Initially, the row at index 0 is white, when you move it to index 5 it is still white until you hover it:

        public RadForm1()
        {
            InitializeComponent();

            this.radGridView1.Columns.Add("Data");
            for (int i = 0; i < 100; i++)
            {
                this.radGridView1.Rows.Add(i);
            }
            this.radGridView1.EnableAlternatingRowColor = true;
            this.radGridView1.TableElement.AlternatingRowColor = Color.Aqua;
        }
        
        private void radButton1_Click(object sender, EventArgs e)
        {
            this.radGridView1.Rows.Move(0, 5);
        }

Workaround:

        private void radButton1_Click(object sender, EventArgs e)
        {
            this.radGridView1.Rows.Move(0, 5);
            this.radGridView1.Rows[5].InvalidateRow();
        }
Completed
Last Updated: 21 Feb 2019 05:42 by ADMIN
This was working this way in 2017 then we changer it so all rows are affected. 

Bot modes should be supported. 

Completed
Last Updated: 05 Feb 2019 14:59 by ADMIN
Unplanned
Last Updated: 16 May 2019 05:56 by ADMIN
Created by: Shawn
Comments: 2
Category: GridView
Type: Feature Request
1

I have the following logic for my View, which has a RadGridView control (add to form at design-time).

GUI is a lightweight view, Controller does the heavy lifting. That part is all good.

 

However setting the column name and column autosize stuff is a little more "over-complicated" than I'd wish to see. It all works though.

Would be nice to have a "GridViewTextBoxColumnAttribute" as per below, for properties on Custom datasource objects to achieve the same thing in a more concise way.

Or am I missing something and there is a much easier way to do what I want?

 

I have a number of datasource classes: MyObject, MyCar, MyDog, MyWhatever... that ALL have different property names and datatypes, but may or may-not have the same column name or MasterTemplate style.

 

Also BestFitColumns is a function of the MasterTemplate, would be nice if it were a property for consistency sake (call to internal function encapsulated in the Set etc), as from a Telerik user's perspective it's just an enum. Then it would be setable in the SmartTag window as well, as functions can't be assigned to.

 

  public partial class RadForm1 : Telerik.WinControls.UI.RadForm, IView
    {
        public RadForm1)
        {
            InitializeComponent();
        }

        private void RadForm1_Load(object sender, EventArgs e)
        {
            var x = new Controller();
            x.SetTemplate(this);           
        }

        public Telerik.WinControls.UI.RadGridView RadGridView()
        {
            return this.radGridView1;
        }
    }

    public class Controller
    {
        public void SetTemplate(IView view)
        {
            var View_RadGrid = view.RadGridView();
            View_RadGrid.MasterTemplate.AutoGenerateColumns = false;
            View_RadGrid.MasterTemplate.AutoGenerateHierarchy = false;
            View_RadGrid.MasterTemplate.AllowColumnResize = false;
            View_RadGrid.MasterTemplate.BestFitColumns(Telerik.WinControls.UI.BestFitColumnMode.AllCells);

            var cols = new List<Telerik.WinControls.UI.GridViewDataColumn>()
            {
                new Telerik.WinControls.UI.GridViewTextBoxColumn("DisplayName1"),
                new Telerik.WinControls.UI.GridViewTextBoxColumn("DisplayName2")
            };
            View_RadGrid.MasterTemplate.Columns.AddRange(cols.ToArray());

            View_RadGrid.DataSource = new List<MyObject>() 
            { 
                new MyObject() { DisplayName1 = "1", DisplayName2 = "2" }, 
                new MyObject() { DisplayName1 = "3", DisplayName2 = "4" } 
            };
        }

        private class MyObject
        {
            [GridViewTextBoxColumnAttribute("DisplayName1", BestFitColumn = Telerik.WinControls.UI.BestFitColumnMode.AllCells, AllowColumnResize = false)]
            public string DisplayName1 { get; set; }

            [GridViewTextBoxColumnAttribute("DisplayName2", BestFitColumn = Telerik.WinControls.UI.BestFitColumnMode.AllCells, AllowColumnResize = false)]
            public string DisplayName2 { get; set; }
        }
    }

    public interface IView
    {
        Telerik.WinControls.UI.RadGridView RadGridView();
    }

    [System.AttributeUsage(System.AttributeTargets.Property)]
    public class GridViewTextBoxColumnAttribute : System.Attribute
    {
        private string FieldName;
        public Telerik.WinControls.UI.BestFitColumnMode BestFitColumn;
        public bool AllowColumnResize;

        public GridViewTextBoxColumnAttribute(string fieldName)
        {
            this.FieldName = fieldName;
        }
    }

Completed
Last Updated: 07 Jul 2020 05:16 by ADMIN
Created by: Pieter
Comments: 8
Category: GridView
Type: Bug Report
1

Steps to reproduce:

  • Create a RadGridView
  • DataBind the grid to a DataView (it might also fail for other kinds of databinding or content)
  • For a column, call BestFit().
  • Remove that column from the grid.
  • Add the Grid to a parent form or control 
  • Make the form/control visible.

When the grid is loaded and displayed, a NullReferenceException will be thrown:


Message             : Object reference not set to an instance of an object.
Type                : System.NullReferenceException
Source              : Telerik.WinControls.GridView
Stack trace         : Telerik.WinControls.UI.BestFitHelper.SetColumnWidth(GridViewColumn column, Single desiredWidth)
                      Telerik.WinControls.UI.BestFitHelper.BestFitColumnCore(GridViewColumn column, BestFitColumnMode mode)
                      Telerik.WinControls.UI.BestFitHelper.ProcessRequests()
                      Telerik.WinControls.UI.RowsContainerElement.MeasureOverride(SizeF availableSize)
                      Telerik.WinControls.RadElement.MeasureCore(SizeF availableSize)
                      Telerik.WinControls.RadElement.Measure(SizeF availableSize)
                      Telerik.WinControls.UI.ScrollViewElement`1.MeasureViewElement(SizeF availableSize)
                      Telerik.WinControls.UI.ScrollViewElement`1.MeasureView(SizeF availableSize)
                      Telerik.WinControls.UI.ScrollViewElement`1.MeasureOverride(SizeF availableSize)
                      Telerik.WinControls.UI.GridTableElement.MeasureOverride(SizeF availableSize)
                      Telerik.WinControls.RadElement.MeasureCore(SizeF availableSize)
                      Telerik.WinControls.RadElement.Measure(SizeF availableSize)
                      Telerik.WinControls.Layouts.DockLayoutPanel.MeasureOverride(SizeF constraint)
                      Telerik.WinControls.RadElement.MeasureCore(SizeF availableSize)
                      Telerik.WinControls.RadElement.Measure(SizeF availableSize)
                      Telerik.WinControls.UI.LightVisualElement.MeasureElements(SizeF availableSize, SizeF clientSize, Padding borderThickness)
                      Telerik.WinControls.UI.LightVisualElement.MeasureOverride(SizeF availableSize)
                      Telerik.WinControls.RadElement.MeasureCore(SizeF availableSize)
                      Telerik.WinControls.RadElement.Measure(SizeF availableSize)
                      Telerik.WinControls.RootRadElement.MeasureOverride(SizeF availableSize)
                      Telerik.WinControls.RootRadElement.MeasureCore(SizeF availableSize)
                      Telerik.WinControls.RadElement.Measure(SizeF availableSize)
                      Telerik.WinControls.RadElementTree.PerformInnerLayout(Boolean performMeasure, Int32 x, Int32 y, Int32 width, Int32 height)
                      Telerik.WinControls.RadControl.OnLoad(Size desiredSize)
                      Telerik.WinControls.UI.RadGridView.OnLoad(Size desiredSize)
                      Telerik.WinControls.RadControl.LoadElementTree(Size desiredSize)
                      Telerik.WinControls.RadControl.OnCreateControl()
                      System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
                      System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
                      System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
                      System.Windows.Forms.Control.CreateControl()
                      System.Windows.Forms.Control.SetVisibleCore(Boolean value)
                      Telerik.WinControls.UI.TabPanel.set_Visible(Boolean value)
                      Telerik.WinControls.UI.TabStripPanel.SetSelected(TabPanel tabPanel)
                      Telerik.WinControls.UI.TabStripPanel.UpdateTabSelection(Boolean updateFocus)
                      Telerik.WinControls.UI.Docking.DockTabStrip.UpdateTabSelection(Boolean updateFocus)
                      Telerik.WinControls.UI.Docking.ToolTabStrip.UpdateTabSelection(Boolean updateFocus)
                      Telerik.WinControls.UI.TabStripPanel.OnHandleCreated(EventArgs e)
                      System.Windows.Forms.Control.WmCreate(Message& m)
                      System.Windows.Forms.Control.WndProc(Message& m)
                      System.Windows.Forms.ScrollableControl.WndProc(Message& m)
                      Telerik.WinControls.RadControl.WndProc(Message& m)
                      Telerik.WinControls.UI.SplitPanel.WndProc(Message& m)
                      System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
                      System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
                      System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


Completed
Last Updated: 13 Feb 2019 15:39 by ADMIN

Dears

Looks like after last Telerik update to 2019.1.117.40 lilter do digits/numbers is not working any more. When I'd like filter out on decimal columns (or even text column but with linked decimal/int values) I get no results, no rows.

With text columns all is ok.

 

BR

Declined
Last Updated: 05 Apr 2019 14:30 by ADMIN

To reproduce:

Update the data source directly and check the OldItems array.

Completed
Last Updated: 21 Mar 2019 15:08 by ADMIN
Release 2019.1.318 (03/18/2019)

When you start typing in the search text box some long text, not all key strokes will be handled. Please refer to the attached gifs file illustrating the behavior in the previous version and the latest release. 

Please refer to the attached sample project. Run the project and try typing "too long to type" in as your search.

Completed
Last Updated: 21 Mar 2019 17:46 by Dimitar
Use attached to reproduce.
Unplanned
Last Updated: 19 Mar 2019 07:32 by ADMIN

To reproduce: 

- Add items with the same display member open the drop-down and select the second.

- Select another control on the form and then reopen the popup.

- The first item is selected.

Workaround: 

class MyMultiColumnComboBox : RadMultiColumnComboBox
{
    protected override void OnLostFocus(EventArgs e)
    {
        if (this.DropDownStyle == Telerik.WinControls.RadDropDownStyle.DropDownList)
        {
            return;
        }
        base.OnLostFocus(e);
    }
}

Completed
Last Updated: 10 Apr 2019 15:26 by Dimitar
Release R2 2019 (LIB 2019.1.415)

The function OnNotifyPropertyChanged(string propertyName) in RadGridView.cs does not call the base function of RadControl.

RadGridView.cs

        protected override void OnNotifyPropertyChanged(string propertyName)
        {
            if (propertyName == "AutoSize")
            {
                if (!this.AutoSize)
                {
                    this.RootElement.StretchHorizontally = true;
                    this.RootElement.StretchVertically = true;
                }
                else
                {
                    this.RootElement.StretchHorizontally = false;
                    this.RootElement.StretchVertically = false;
                }
            }
        }

 

RadControl.cs

        /// <summary>
        /// Raises the PropertyChanged event
        /// </summary>
        /// <param name="propertyName">The name of the property</param>
        protected virtual void OnNotifyPropertyChanged(string propertyName)
        {
            this.OnNotifyPropertyChanged(new PropertyChangedEventArgs(propertyName));
        }

        protected virtual void OnNotifyPropertyChanged(PropertyChangedEventArgs e)
        {
            PropertyChangedEventHandler handler1 =
                (PropertyChangedEventHandler)this.Events[RadControl.PropertyChangedEventKey];
            if (handler1 != null)
            {
                handler1(this, e);
            }
        }

 

Because of this i cannot do the following

RadGridView grid = new RadGridView();
grid.OnNotifyPropertyChanged("mypropertyname");

 

I currently work around this by doing the following

RadGridView grid = new RadGridView();
grid.OnNotifyPropertyChanged(new PropertyChangedEventArgs("mypropertyname"));

 

I need this functionality because i have a custom control which is derived from RadGridView and it has a custom property that requires databinding with INotifyPropertyChanged. I cannot implement this interface myself because the grid already does this.

I have checked this in both the 2018.1.220 and 2019.1.219 source.

Kind regards,

 

Edwin Dirkzwager
CIP Software

Completed
Last Updated: 02 May 2019 08:47 by ADMIN
Release R2 2019

Please run the attached sample project and try to expand a row. The following error occurs:

System.NullReferenceException was unhandled by user code
  HResult=-2147467261
  Message=Object reference not set to an instance of an object.
  Source=Telerik.WinControls.GridView
  StackTrace:
       at Telerik.WinControls.UI.GridDetailViewRowElement.Detach()
       at Telerik.WinControls.UI.GridRowElement.DisposeManagedResources()
       at Telerik.WinControls.DisposableObject.PerformDispose(Boolean disposing)
       at Telerik.WinControls.RadElement.PerformDispose(Boolean disposing)
       at Telerik.WinControls.DisposableObject.Dispose(Boolean disposing)
       at Telerik.WinControls.RadElement.DisposeChildren()
       at Telerik.WinControls.RadElement.PerformDispose(Boolean disposing)
       at Telerik.WinControls.DisposableObject.Dispose(Boolean disposing)
       at Telerik.WinControls.RadElement.DisposeChildren()
       at Telerik.WinControls.RadElement.PerformDispose(Boolean disposing)
       at Telerik.WinControls.DisposableObject.Dispose(Boolean disposing)
       at Telerik.WinControls.RadElement.DisposeChildren()
       at Telerik.WinControls.RadElement.PerformDispose(Boolean disposing)
       at Telerik.WinControls.DisposableObject.Dispose(Boolean disposing)
       at Telerik.WinControls.RadElement.DisposeChildren()
       at Telerik.WinControls.RadElement.PerformDispose(Boolean disposing)
       at Telerik.WinControls.DisposableObject.Dispose(Boolean disposing)
       at Telerik.WinControls.RadElement.DisposeChildren()
       at Telerik.WinControls.RadElement.PerformDispose(Boolean disposing)
       at Telerik.WinControls.DisposableObject.Dispose(Boolean disposing)
       at Telerik.WinControls.RadElement.DisposeChildren()
       at Telerik.WinControls.RadElement.PerformDispose(Boolean disposing)
       at Telerik.WinControls.DisposableObject.Dispose(Boolean disposing)
       at Telerik.WinControls.ComponentThemableElementTree.Dispose(Boolean disposing)
       at Telerik.WinControls.RadControl.Dispose(Boolean disposing)
       at Telerik.WinControls.UI.RadGridView.Dispose(Boolean disposing)
       at System.ComponentModel.Component.Dispose()
       at System.Windows.Forms.Control.Dispose(Boolean disposing)
       at System.Windows.Forms.Form.Dispose(Boolean disposing)
       at Telerik.WinControls.UI.RadFormControlBase.Dispose(Boolean disposing)
       at Telerik.WinControls.UI.RadForm.Dispose(Boolean disposing)
       at _1401918_GridHierarchyPageViewMode.RadForm1.Dispose(Boolean disposing) in d:\Projects\1401918 GridHierarchyPageViewMode\RadForm1.Designer.cs:line 20
       at System.ComponentModel.Component.Dispose()
       at System.Windows.Forms.ApplicationContext.Dispose(Boolean disposing)
       at System.Windows.Forms.Application.ThreadContext.DisposeThreadWindows()
  InnerException: 

Unplanned
Last Updated: 14 May 2019 12:56 by ADMIN
============================
Attached files (in Grid.zip)
============================
- SQL Server 2014 Express - Create DB.sql                 - Create the database Telerik
- SQL Server 2014 Express - Create tables.sql             - Create tables and insert test data
- Database relations.PNG                                           - Graphical view from Visual Studio
- Error messages when trying to open Property Builder.PNG

============================  
How to reproduce the problem
============================
- Create the database and tables (including data) with attached sql files
- Create a WinForms application with an empty RadForm
- Add a new data source to the project and select the created Telerik DB with all tables
- Add a RadGridView to the form
- Create an event handler for the form Load event handler
- Add a TelerikDataSet to the form
- Add an ObjectTableAdapter to the form
- Fill the created adapter from table Object in the form Load event handler
- Add a binding source to the form and set data source to the data set and the member to table Object
- Select radGridView1 and set data source to the created binding source object. Data member is left empty.
- Open Property Builder and press the Build button and create details views
- Run project. Everything looks ok.
- Stop running.
- Select radGridView1 and try to open Property Builder. An error message is generated (see attached file Error messages...
- Save changes and exit studio. Studio is hanging and the process must be kiled.


Completed
Last Updated: 06 Jun 2019 13:44 by ADMIN
Release R2 2019 SP1 (LIB 2019.2.610)
Created by: Comparto
Comments: 1
Category: GridView
Type: Feature Request
1
Add deferred search like in WPF suite
Declined
Last Updated: 27 May 2022 14:15 by ADMIN
Scheduled for R2 2022 SP1
The decimal separator is removed when exporting with German culture on Windows Server 2012
Completed
Last Updated: 06 Jun 2019 13:28 by ADMIN
Release R2 2019 SP1 (LIB 2019.2.610)
Created by: James
Comments: 1
Category: GridView
Type: Bug Report
1

To reproduce:

- Set the AutoSize to true

- Add GroupDescriptor

- An InvalidOperationException is thrown

Completed
Last Updated: 28 Jun 2019 08:50 by ADMIN
Release R2 2019 SP1
Created by: Sasa
Comments: 2
Category: GridView
Type: Bug Report
1
RadGridView data source contains date values from years 2018 and 2019. After adding Excel like filters to the RadGridView and selecting year 2019 no rows were displayed, even though some values did match the filter condition (see attachment).
Completed
Last Updated: 17 Jul 2019 07:33 by ADMIN
Release R3 2019 (LIB 2019.2.722)
Unplanned
Last Updated: 19 Jun 2019 09:46 by ADMIN
Created by: Dimitri
Comments: 3
Category: GridView
Type: Bug Report
1

In my gridview need support of different heights of rows. I solved it with the autosize property.

But now I have a side action that the header row and filter row also react to the autosize property.

Attached you can see this behaviour...

Here my code:

Grid.MasterView.TableFilteringRow.MinHeight = 40
Grid.AutoSizeRows = True

Is there a chance to separate data rows from filter and header row?

 

Regards,

Dimitri