Approved
Last Updated: 26 Feb 2019 21:09 by Bryan Cho
Changing the DataSource or scrolling are slow.

Create a grid with more than 20 columns and add 5K rows for example. Maximize the form and try to scroll with mouse wheel. You will notice that the scrolling performance is worse compared to the normal state of the form with less visible visual elements.

Workaround: this.radGridView1.EnableFastScrolling = true; and use the scrollbar's thumb

Second workaround: use paging:  https://docs.telerik.com/devtools/winforms/gridview/paging/overview Thus, you will display as many rows as possible to display on the screen per page. Instead of scrolling, you will navigate through pages.
Approved
Last Updated: 19 Apr 2018 12:30 by ADMIN
Approved
Last Updated: 29 Mar 2019 16:16 by ADMIN
When UseCompatibleTextRendering property is set to false, the data cells overlaps the row header cells when horizontal scrolling is performed.
Approved
Last Updated: 30 Mar 2016 07:52 by Jesse Dyck
The Property Builder of RadGridView makes unnecessary Designer modifications, causing checkouts in source controlled files. For example, if you have a gridViewCheckBoxColumn1 stored in the designer file, you open the Property Builder and close it (no matter if you make any changes or not), the gridViewCheckBoxColumn1 is removed in favour of gridViewCheckBoxColumn2 that is automatically created.
Approved
Last Updated: 05 Oct 2018 12:54 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Sr.
Comments: 0
Category: GridView
Type: Bug Report
8
To reproduce:
1.Add a RadGridView with one column.
2.Select the form and in the Properties window, set the form's Localizable property to true.
3.Specify the column's HeaderText for the default language.
4.Set the form's Language property to French (France).
5.Specify the column's HeaderText for  French (France).
6.Set the CurrentUICulture before the InitializeComponent method to "fr-FR". If you run the application, the column is localized as expected.
7.If you get back to the designer and change the form's Language property back to Default you will notice that the column's HeaderText disappears.

Workaround: set the HeaderText programmatically according to the current language.
Approved
Last Updated: 15 Aug 2017 09:33 by ADMIN
ADD. RadGridView - add support for self-reference hierarchy for child levels as well
Approved
Last Updated: 15 Aug 2017 10:02 by ADMIN
Approved
Last Updated: 19 Mar 2019 10:29 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Sr.
Comments: 2
Category: GridView
Type: Bug Report
4
To reproduce: use the following code snippet, save the layout and load it afterwards. You will notice that only the master and the first child template are successfully loaded.

public Form1()
{
    InitializeComponent();
    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, "Parent" + i);
    }

    this.radGridView1.MasterTemplate.DataSource = dt;
    this.radGridView1.MasterTemplate.AutoSizeColumnsMode = Telerik.WinControls.UI.GridViewAutoSizeColumnsMode.Fill;

    //child level 1
    GridViewTemplate template = new GridViewTemplate();
    template.DataSource = GetData(5, 20, 0, 5);
    template.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill;
    radGridView1.MasterTemplate.Templates.Add(template);

    GridViewRelation relation = new GridViewRelation(radGridView1.MasterTemplate);
    relation.ChildTemplate = template;
    relation.RelationName = "ParentChild";
    relation.ParentColumnNames.Add("Id");
    relation.ChildColumnNames.Add("ParentId");
    radGridView1.Relations.Add(relation);

    //child level 2
    GridViewTemplate template2 = new GridViewTemplate();
    template2.DataSource = GetData(20, 40, 5, 20);
    template2.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill;
    template.Templates.Add(template2);

    GridViewRelation relation2 = new GridViewRelation(template);
    relation2.ChildTemplate = template2;
    relation2.RelationName = "ParentChild";
    relation2.ParentColumnNames.Add("Id");
    relation2.ChildColumnNames.Add("ParentId");
    radGridView1.Relations.Add(relation2);

    //child level 3
    GridViewTemplate template3 = new GridViewTemplate();
    template3.DataSource = GetData(40, 100, 20, 40);
    template3.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill;
    template2.Templates.Add(template3);

    GridViewRelation relation3 = new GridViewRelation(template2);
    relation3.ChildTemplate = template3;
    relation3.RelationName = "ParentChild";
    relation3.ParentColumnNames.Add("Id");
    relation3.ChildColumnNames.Add("ParentId");
    radGridView1.Relations.Add(relation3);

    //child level 4
    GridViewTemplate template4 = new GridViewTemplate();
    template4.DataSource = GetData(100, 200, 40, 100);
    template4.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill;
    template3.Templates.Add(template4);

    GridViewRelation relation4 = new GridViewRelation(template3);
    relation4.ChildTemplate = template4;
    relation4.RelationName = "ParentChild";
    relation4.ParentColumnNames.Add("Id");
    relation4.ChildColumnNames.Add("ParentId");
    radGridView1.Relations.Add(relation4);
}

private object GetData(int from, int to, int parentFrom, int parentTo)
{
    DataTable dt = new DataTable();
    dt.Columns.Add("Id", typeof(int));
    dt.Columns.Add("Name", typeof(string));  
    dt.Columns.Add("ParentId", typeof(int));
    Random rand = new Random();
    for (int i = from; i < to; i++)
    {
        dt.Rows.Add(i, "Child" + i, rand.Next(parentFrom, parentTo));
    }
    return dt;
}

private void radButton1_Click(object sender, EventArgs e)
{
    string s = "default.xml";
    SaveFileDialog dialog = new SaveFileDialog();
    dialog.Filter = "xml files (*.xml)|*.xml|All files (*.*)|*.*";
    dialog.Title = "Select a xml file";
    if (dialog.ShowDialog() == DialogResult.OK)
    {
        s = dialog.FileName;
    }
    this.radGridView1.SaveLayout(s);
}

private void radButton2_Click(object sender, EventArgs e)
{
    string s = "default.xml";
    OpenFileDialog dialog = new OpenFileDialog();
    dialog.Filter = "xml files (*.xml)|*.xml|All files (*.*)|*.*";
    dialog.Title = "Select a xml file";
    if (dialog.ShowDialog() == DialogResult.OK)
    {
        s = dialog.FileName;
    }
    this.radGridView1.LoadLayout(s);
}


Workaround: grid templates for the inner levels are recreated after loading the layout. Their DataSource is null and the existing relations points to the old templates. Clear the relations and setup them again with the new  child template instances.
Approved
Last Updated: 26 Mar 2018 11:38 by ADMIN
Use attached project to reproduce!

Another case is when the font size is changed from the settings dialog - in this case, the row height is not adjusted.

Workaround:
Use the following custom print style:

class MyTableViewDefinitionPrintRenderer : TableViewDefinitionPrintRenderer
{
    public MyTableViewDefinitionPrintRenderer(RadGridView grid) : base(grid)
    {

    }
    protected override int GetDataRowHeight(GridViewRowInfo row, TableViewRowLayoutBase rowLayout)
    {
        int result = base.GetDataRowHeight(row, rowLayout);

        int newHeight = 0;

        if (!(row is GridViewGroupRowInfo))
        {
            foreach (GridViewColumn col in row.ViewTemplate.Columns)
            {
                if (col is GridViewRowHeaderColumn || col is GridViewIndentColumn || !col.IsVisible)
                {
                    continue;
                }

                string value = row.Cells[col.Name].Value.ToString();

                TableViewCellArrangeInfo info = ((TableViewRowLayout)rowLayout).LayoutImpl.GetArrangeInfo(col);
                float cellWidth = (float)info.CachedWidth;
                int currentHeight = TextRenderer.MeasureText(value, this.GridView.PrintStyle.CellFont, new Size((int)cellWidth, 0), TextFormatFlags.WordBreak).Height + this.GridView.Font.Height *4;

                newHeight = Math.Max(newHeight, currentHeight);

            }
        }


        return Math.Max(newHeight, result); 
    }
}
class MyPrintStyle :GridPrintStyle
{
    protected override BaseGridPrintRenderer InitializePrintRenderer(RadGridView grid)
    {
        return new MyTableViewDefinitionPrintRenderer(grid);
    }
}
Approved
Last Updated: 14 May 2019 06:18 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Sr.
Comments: 1
Category: GridView
Type: Bug Report
4
To reproduce:
Add a RadGridView and use the following code. When you expand the first row, the vertical scrollbar is not correct. Scrolling down changes its size. However, if you expand the last row, it takes few seconds to open.

Second scenario:
In addition of the following code, if you change the TableElement.PageViewMode to PageViewMode.ExplorerBar, expanding the first row takes few seconds to load the hierarchical data as well.

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();

        List<Item> items = new List<Item>();
        List<SubItem> subItems = new List<SubItem>();

        for (int i = 1; i <= 3; i++)
        {
            Item item = new Item(i, "Item" + i);
            
            for (int j = 1000; j <= 2010; j++)
            {
                subItems.Add(new SubItem(j, "SubItem" + j, i));
            }

            items.Add(item);
        }

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

        GridViewTemplate template = new GridViewTemplate();
        template.ReadOnly = true;
        template.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill;

        GridViewRelation relation = new GridViewRelation(this.radGridView1.MasterTemplate, template);
        relation.ParentColumnNames.Add("Id");
        relation.ChildColumnNames.Add("ItemId");
        this.radGridView1.MasterTemplate.Templates.Add(template);
        this.radGridView1.Relations.Add(relation);
        template.DataSource = subItems;
    }
}

public class Item
{
    public int Id { get; set; }

    public string Title { get; set; }

    public Item(int id, string title)
    {
        this.Id = id;
        this.Title = title;
    }
}

public class SubItem
{
    public int Id { get; set; }

    public int ItemId { get; set; }

    public string Name { get; set; }
    
    public SubItem(int id, string name, int itemId)
    {
        this.Id = id;
        this.ItemId = itemId;
        this.Name = name;
    }
}
Approved
Last Updated: 30 Mar 2016 07:54 by Jesse Dyck
Steps to reproduce:

1. Create a form
2. Set its Localization property to true.
3. Add RadGridView to the form
4. Add 3 GridViewTextBoxColumn instances at design-time
5. Change the Language of the form to Polish
6. The variable names of the columns are changed (gridViewTextBoxColumn1 to gridViewTextBoxColumn4, gridViewTextBoxColumn2 to gridViewTextBoxColumn5, gridViewTextBoxColumn3 to gridViewTextBoxColumn6)
Approved
Last Updated: 15 Aug 2017 09:33 by Uwe
Consider the iTunes Artist mode grid
http://www.telerik.com/forums/itunes-like-grid
Approved
Last Updated: 15 Aug 2017 09:33 by ADMIN
Improve RadGridViewDragDropService extensibility to perform visual drop indication over RadTreeView.
Approved
Last Updated: 30 Mar 2016 07:54 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Sr.
Comments: 2
Category: GridView
Type: Bug Report
3
1.Different naming of RadGridView templates (in the Smart tag - Relations section and in the Property Builder - Relations section) is confusing.

2.Column reordering via drag and drop in the same template. This action will change the object order of the grid. All changes are shown in the Preview section:  I can select columns listed in the object tree, but cannot drag them up or down within a template. The only way I can reorder columns in the property builder appears to be by dragging them left or right in the preview pane.

3.Column moving via drag and drop from one template to another template. This action will change the object order of the grid. All changes are shown in the Preview section: I cannot move columns in the object tree from one template to another.

4.Template reordering via drag and drop. All changes are shown in the Preview section: drag and drop operation for templates in not allowed.

5.There is a right-click context menu for the object tree, with the following options: "Edit", "Expand / Collapse", "New", "Delete". Under no circumstances do the options "Edit" and "New" ever become enabled.

6.The preview pane displays a preview of the columns for the master template. When the child template is selected, the preview pane still shows a preview of the columns for the master template. As such, it is not possible to reorder columns for child templates in the preview pane.

7.When you set up the RadGridView hierarchy automatically at design time and open the Property Builder, all templates are visualized. It is possible to select/deselect columns from the different templates. It is possible to change columns names. However, when you press the OK button and close the Property Builder, try to reopen it. As a result you will notice that all columns from all child templates are selected and all columns contain the default names, no matter what changes were performed.

Refer to the corresponding help article http://www.telerik.com/help/winforms/gridview-design-time-support-property-builder.html
Approved
Last Updated: 15 Aug 2017 10:08 by ADMIN
Created by: Jason
Comments: 1
Category: GridView
Type: Feature Request
3
Enable the ability to MERGE seperate rows (different records), like found in ITunes "Songs" mode where is shows the artwork (then artist,release undernearth) in a custom class, then the related song rows to the right.

Your competitor Dev Express has it already in place.

See youtube video here :

https://www.youtube.com/watch?v=TfPXwE7GcXs

Cheers
Approved
Last Updated: 12 Feb 2018 15:54 by Eric Moreau
It appears that this scenario is not handled properly in our exporter. Consider the case where you have two templates that use view definition. 

The view definition from the second template is not exported at all.
Approved
Last Updated: 08 Oct 2019 12:15 by ADMIN
Approved
Last Updated: 04 Oct 2016 06:27 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Sr.
Comments: 0
Category: GridView
Type: Feature Request
3
Repeat the master template headers right after the end of an expanded detail template. The purpose is clarity for the end user.
Approved
Last Updated: 20 Apr 2018 07:31 by ADMIN
To reproduce: run the attached sample project. 

Type "chef" in the search box and then try to sort some of the columns. Click the header cell several times and as a result the exception will occur.

Workaround:

        public class CustomGrid : RadGridView
        {
            public new object DataSource
            { 
                get
                {
                    return (object)base.DataSource;
                }
                set
                {
                    GridViewSearchRowInfo.Cancel = true;
                    Thread.Sleep(100);
                    base.DataSource = null;
                    this.EnableFiltering = false;
                    base.DataSource = value;
                    this.EnableFiltering = true;
                    base.CurrentRow = null; 
                }
            }
        }
1 2 3 4 5 6