Completed
Last Updated: 01 Dec 2011 14:09 by Jesse Dyck
ADMIN
Created by: Jack
Comments: 1
Category: GridView
Type: Bug Report
3
use attached project with pre-build release version of assemblies included in the 'telerik-devbranch-release' folder
1. Create a new project with RadGridView and bind it to a data source. The data source should contain a large number of rows (30000 for example)
2. Add a check box column
3. Run the project
4. Sort by a column (different from the checkbox column)
5. Check a checkbox
6. Click on some other column or row
Completed
Last Updated: 28 Feb 2012 04:58 by ADMIN
ADMIN
Created by: Boryana
Comments: 0
Category: GridView
Type: Bug Report
3
Expanding a newly added row in a grid with ChildViewTabsPosition set to Left or Right, InvalidOperationException is thrown. The issue can be reproduced in both bound and unbound mode.
Completed
Last Updated: 20 Dec 2012 02:58 by ADMIN
ADMIN
Created by: Boryana
Comments: 0
Category: GridView
Type: Bug Report
3
FormatException is raised when a user attempts to filter RadGridView's combobox column
Completed
Last Updated: 23 Dec 2011 04:00 by ADMIN
FIX. RadGridView - the DisplayMember, ValueMember and DataSource properties of GridViewComboBoxColumn are not visible in the property builder
Completed
Last Updated: 28 May 2015 06:47 by Svetlin
Workaround: use the following custom editor:

using System;
using Telerik.WinControls.UI;

namespace radGridView_MultipleFilters
{
    public class CustomRadMultiColumnComboBoxElement : RadMultiColumnComboBoxElement
    {
        protected override Type ThemeEffectiveType
        {
            get
            {
                return typeof(RadMultiColumnComboBoxElement);
            }
        }

        public GridViewDataColumn DisplayColumn
        {
            get
            {
                string displayMember = this.DisplayMember;
                if (string.IsNullOrEmpty(displayMember))
                {
                    for (int i = 0; i < this.MultiColumnPopupForm.EditorControl.Columns.Count; i++)
                    {
                        if (this.MultiColumnPopupForm.EditorControl.Columns[i].DataType == typeof(string))
                        {
                            displayMember = this.MultiColumnPopupForm.EditorControl.Columns[i].FieldName;
                            break;
                        }
                    }
                    if (this.MultiColumnPopupForm.EditorControl.Columns.Count > 0
                        && string.IsNullOrEmpty(displayMember))
                    {
                        displayMember = this.MultiColumnPopupForm.EditorControl.Columns[0].FieldName;
                    }
                }
                DisplayMember = displayMember;
                GridViewDataColumn[] columns = this.MultiColumnPopupForm.EditorControl.Columns.GetColumnByFieldName(displayMember);
                if (columns.Length > 0)
                {
                    return columns[0];
                }
                return null;
            }
        }

        protected override object FindItemExact(string text)
        {
            int index = this.FindItemIndexExact(text);

            if (index != -1)
            {
                return this.EditorControl.ChildRows[index];
            }

            return null;
        }

        protected override void SetActiveItem(string text)
        {
            int rowIndex = this.FindItemIndexExact(text);

            if (rowIndex != -1)
            {
                this.EditorControl.CurrentRow = this.EditorControl.ChildRows[rowIndex];
                this.Select(this.Text.Length, 0);
            }
        }

        protected override int FindItemIndexExact(string text)
        {
            GridViewRowInfo rowInfo = this.FindItemExact(text, this.DisplayColumn.Name);

            if (rowInfo != null)
            {
                return rowInfo.Index;
            }

            return -1;
        }

        protected override GridViewRowInfo FindItemExact(string text, string field)
        {
            GridViewDataColumn[] foundColumns = this.EditorControl.Columns.GetColumnByFieldName(field);
            if (foundColumns.Length > 0)
            {
                for (int i = 0; i < this.EditorControl.ChildRows.Count; i++)
                {
                    object element =
                        this.EditorControl.ChildRows[i].Cells[foundColumns[0].Name].Value;

                    string elementText = Convert.ToString(element);

                    if (!string.IsNullOrEmpty(elementText) && elementText.Equals(text,
                        this.EditorControl.MasterTemplate.CaseSensitive ? StringComparison.InvariantCulture : StringComparison.InvariantCultureIgnoreCase))
                    {
                        return this.EditorControl.ChildRows[i];
                    }
                }
            }
            return null;
        }
    }
}
Completed
Last Updated: 01 Jun 2015 08:36 by ADMIN
When a Right-To-Left grid is printed the text of all print cells should be drawn with the StringFormatFlags.DirectionRightToLeft.

Example:
RadGridView with RightToLeft set to Yes
A decimal column with negative values
the values in the decimal column are drawn as 96-, 88- etc
if this grid is printed the values will be -96, -88

Workaround: http://www.telerik.com/community/forums/radprintdocument-from-a-grid-wrong-format-when-right-to-left-true-in-grid
Completed
Last Updated: 13 Oct 2014 09:53 by Jesse Dyck
RadGridView is throwing exception when loading layout that contains a GroupDescriptor with predefined Format with Aggregate function.

Steps to reproduce:

1. Add GroupDescriptor:
        Dim descriptor As New GroupDescriptor
        descriptor.GroupNames.Add("column3", System.ComponentModel.ListSortDirection.Ascending)
        descriptor.Aggregates.Add("Sum(column3)")
        descriptor.Format = "{0}: {1} Total montant : {2:c2}"
        Me.RadGridView1.GroupDescriptors.Add(descriptor)
2. Save Layout
3. Load Layout
Completed
Last Updated: 08 Jan 2015 12:02 by ADMIN
To reproduce:
1. Add text box and check box column to the grid. Add a filter descriptor to the text box column
2. Bind it to a DataTable with some data
3. Clear the columns
4. Add the columns once again => the exception will be thrown 

Workaround.

1. Create the following cell element:
    class MyHeaderCell : GridCheckBoxHeaderCellElement
    {
        public MyHeaderCell(GridViewColumn column, GridRowElement row)
            : base(column, row)
        {

        }

        protected override bool SetCheckBoxState()
        {
            if (this.ColumnIndex == -1)
            {
                return false;
            }

            return base.SetCheckBoxState();
        }
    }
2. Subscribe to the grid's CreateCell event
3. Put the modified cell in action:
        void radGridView_CreateCell(object sender, GridViewCreateCellEventArgs e)
        {
            if (e.CellType == typeof(GridCheckBoxHeaderCellElement))
            {
                e.CellType = typeof(MyHeaderCell);
            }
        }
Completed
Last Updated: 21 Sep 2012 04:13 by ADMIN
ADMIN
Created by: Jack
Comments: 0
Category: GridView
Type: Bug Report
3
1. Create a new project with RadGridView and set the MultiSelect property to true.
2. Subscribe for the SelectionChanged event.
3. Run the project and select some rows using the mouse.
4. Scroll up to deslect some of the rows. You will see that the SelectionChanged event does not fire.
Completed
Last Updated: 21 Aug 2015 13:46 by ADMIN
Description: When we scroll the RadGridView from Top to Bottom and Bottom to Top the first record is cut off, if we click the refresh button then it will be displayed properly. 

To reproduce:
- add a RadGridView to a form
- add a RadButton to a form
- use the following code snippet:

public Form1()
        {
            InitializeComponent();

            radGridView1.MasterTemplate.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.None;
            radGridView1.EnableCustomFiltering = false;
            this.radGridView1.AutoSizeRows = true;

            radGridView1.Columns["CustomerID"].Width = 100;
            radGridView1.Columns["CompanyName"].Width = 150;
            radGridView1.Columns["ContactName"].Width = 150;
            radGridView1.Columns["Country"].Width = 100;
            radGridView1.Columns["Phone"].Width = 90;
            radGridView1.Columns["Fax"].Width = 90;

            radGridView1.Columns["Phone"].AllowFiltering = false;
            radGridView1.Columns["Fax"].AllowFiltering = false;
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            // TODO: This line of code loads data into the 'nwindDataSet.Customers' table. You can move, or remove it, as needed.
            this.customersTableAdapter.Fill(this.nwindDataSet.Customers);

        }

        private void radButton1_Click(object sender, EventArgs e)
        {
            Form1_Load(sender, e);
        }
Completed
Last Updated: 21 Jul 2011 10:31 by ADMIN
ADMIN
Created by: Julian Benkov
Comments: 0
Category: GridView
Type: Bug Report
3
Group Descriptors are added before adding rows in unbound mode and not using defer refresh or Begin/EndUpdate
test:
----------------------------------------------------
using System.ComponentModel;
using System.Windows.Forms;
using Telerik.WinControls.UI;
namespace Lab.Grid
{
public partial class GridGroupInUnboundMode : MainForm
{
private RadGridView gridView = new RadGridView();
public GridGroupInUnboundMode()
{
InitializeComponent();
this.gridView.Dock = DockStyle.Fill;
this.gridView.Parent = this;
this.gridView.BringToFront();
gridView.GroupDescriptors.Add("Name", ListSortDirection.Ascending);
GridViewTextBoxColumn col = new GridViewTextBoxColumn();
col.HeaderText = col.Name = "Id";
col.DataType = typeof(int);
gridView.Columns.Add(col);
col = new GridViewTextBoxColumn();
col.HeaderText = col.Name = "Name";
col.DataType = typeof(string);
gridView.Columns.Add(col);
col = new GridViewTextBoxColumn();
col.HeaderText = col.Name = "Sum";
col.DataType = typeof(double);
gridView.Columns.Add(col);
}
protected override void OnButton1Click()
{
gridView.Rows.Add(1, "Ivan", 123.56);
gridView.Rows.Add(2, "Ivan", 372.90);
gridView.Rows.Add(3, "Peter", 500.00);
}
protected override void OnButton2Click()
{
gridView.Rows.Add(4, "George", 300.00);
gridView.Rows.Add(5, "George", 600.00);
gridView.Rows.Add(6, "George", 100.00);
gridView.Rows.Add(7, "Enzo", 78.00);
}
protected override void OnButton3Click()
{
gridView.Rows.Add(8, "Enzo", 100.00);
gridView.Rows.Add(9, "Enzo", 200.00);
gridView.Rows.Add(10, "Enzo", 300.00);
}
}
}
Completed
Last Updated: 31 Mar 2014 09:22 by ADMIN
To reproduce: - add RadGridView and populate manually with hierarchical data; 

- BestFitColumns method of the child template does not work as expected; 

#1 scenario: radGridView1.MasterTemplate.ExpandAll(); radGridView1.Templates[0].ExpandAll(); radGridView1.Templates[0].BestFitColumns(BestFitColumnMode.AllCells); You will notice that some of the columns in the child template are not wide enough to show the whole cell content; 

#2 scenario: Subscribe to the ChildViewExpanded event and call BestFitColumns: private void radGridView1_ChildViewExpanded(object sender, ChildViewExpandedEventArgs e) { e.ChildViewInfo.ViewTemplate.BestFitColumns(BestFitColumnMode.AllCells); } 

As a result the firstly expanded child view adjusts child template columns width and if you expand another child view which needs greater columns width, it is not displayed correctly. 

Workaround: determine the column width according to the longest cell content: foreach (GridViewDataColumn col in radGridView1.Templates[0].Columns) { BestFitAllCells(col); } private void BestFitAllCells(GridViewColumn column) { MasterGridViewTemplate masterTemplate = column.OwnerTemplate.Parent as MasterGridViewTemplate; if (masterTemplate == null) { return; } RadGridView grid = masterTemplate.Owner; IVirtualizedElementProvider<GridViewRowInfo> rowProvider = grid.TableElement.RowElementProvider; IVirtualizedElementProvider<GridViewColumn> cellProvider = grid.TableElement.ColumnScroller.ElementProvider; float width = 0; foreach (GridViewRowInfo dataRow in column.OwnerTemplate.Rows) { GridRowElement row = rowProvider.GetElement(dataRow, null) as GridRowElement; row.InitializeRowView(grid.TableElement); row.Initialize(dataRow); row.UpdateInfo(); grid.TableElement.Children.Add(row); row.ResetLayout(true); GridVirtualizedCellElement cell = cellProvider.GetElement(column, row) as GridVirtualizedCellElement; cell.Attach(column, row); cell.SetContent(); cell.UpdateInfo(); row.Children.Add(cell); GridHeaderCellElement headerCell = cell as GridHeaderCellElement; if (headerCell != null) { headerCell.UpdateArrowState(); } cell.ResetLayout(true); width = Math.Max(width, this.GetCellDesiredWidth(cell)); row.Children.Remove(cell); grid.TableElement.Children.Remove(row); this.Detach(cellProvider, cell); this.Detach(rowProvider, row); } width = Math.Max(width, TextRenderer.MeasureText(column.HeaderText, grid.Font).Width); column.Width = (int)width; } private float GetCellDesiredWidth(GridCellElement cell) { cell.Measure(new SizeF(float.PositiveInfinity, float.PositiveInfinity)); return cell.DesiredSize.Width; } private void Detach(IVirtualizedElementProvider<GridViewColumn> elementProvider, GridCellElement cell) { GridVirtualizedCellElement virtualizedCell = cell as GridVirtualizedCellElement; if (virtualizedCell != null) { elementProvider.CacheElement(virtualizedCell); virtualizedCell.Detach(); return; } cell.Dispose(); } private void Detach(IVirtualizedElementProvider<GridViewRowInfo> elementProvider, GridRowElement row) { GridVirtualizedRowElement virtualizedRоw = row as GridVirtualizedRowElement; if (virtualizedRоw != null) { elementProvider.CacheElement(virtualizedRоw); virtualizedRоw.Detach(); return; } row.Dispose(); } 
Completed
Last Updated: 12 Apr 2012 04:14 by ADMIN
When a user groups the grid by a certain column and then attempts to drag the column back to the header, column reorder is possible, even though the AllowColumnReorder  is false.
Completed
Last Updated: 21 May 2012 08:30 by ADMIN
FIX. RadGridView - exception when BestFitColumns is called during data update
Completed
Last Updated: 17 Nov 2015 16:27 by ADMIN
To reproduce: bind the grid to self reference data source, and on a button click, Fill the TableAdapter

Workaround: clear the relations to clear the cache and add them back after the adapter is filled:
RadGridView1.Relations.Clear()
        Me.Table1TableAdapter.Fill(Me.Database8DataSet.Table1)
        Me.RadGridView1.Relations.AddSelfReference(Me.RadGridView1.MasterTemplate, "TaskID", "ParentTask")
Completed
Last Updated: 08 Oct 2014 07:15 by ADMIN
To reproduce:
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        BindGrid()
    End Sub

    Private Sub BindGrid()
        Dim r As New Random()
        Dim table As New DataTable()
        table.Columns.Add("ID", GetType(Integer))
        table.Columns.Add("Name", GetType(String))
        table.Columns.Add("Bool", GetType(Boolean))

        For i As Integer = 0 To 39
            table.Rows.Add(i, "Row " & i, If(r.[Next](10) > 5, True, False))
        Next

        Me.RadGridView1.DataSource = table
    End Sub

    Dim saveName As Integer

    Private Sub RadGridView1_CellEndEdit(sender As Object, e As Telerik.WinControls.UI.GridViewCellEventArgs) Handles RadGridView1.CellEndEdit
        If e.Column.Name = "Name" Then
            saveName = RadGridView1.CurrentRow.Cells("ID").Value
            BindGrid()
        End If
    End Sub

    Private Sub RadGridView1_DataBindingComplete(sender As Object, e As Telerik.WinControls.UI.GridViewBindingCompleteEventArgs) Handles RadGridView1.DataBindingComplete
        For Each row As GridViewRowInfo In RadGridView1.Rows
            If row.Cells("ID").Value = saveName Then
                row.IsCurrent = True
                RadGridView1.TableElement.EnsureRowVisible(row)
                Exit For
            End If
        Next
    End Sub
WORKAROUND:
Rebind the grid in the CellValueChanged event instead of the CellEndEdit event:

    Private Sub RadGridView1_CellValueChanged(sender As Object, e As Telerik.WinControls.UI.GridViewCellEventArgs) Handles RadGridView1.CellValueChanged
        If e.Column.Name = "Name" Then
            saveName = RadGridView1.CurrentRow.Cells("ID").Value
            BindGrid()
        End If
    End Sub
Completed
Last Updated: 25 Apr 2012 05:02 by ADMIN
To reproduce:
1.Set the column AutoCompleteMode to suggest
2. Type a letter which does not exist in the records (if you have A, B, and C, use D)
3. Press escape
4. Type in another letter which does not exist => the exception is thrown

The GridRowBehavior is trying to access the AutoCompleteAppend of the element, which is null, while we are in Suggest mode.
Completed
Last Updated: 17 Sep 2015 14:16 by ADMIN
Workaround:  set the Position of the current item of the BindingSource in the CurrentRowChanged event of RadGridView:
void rgvInvoices_CurrentRowChanged(object sender, CurrentRowChangedEventArgs e)
{
    int index = bsInvoices.IndexOf(e.CurrentRow.DataBoundItem) ;
    bsInvoices.Position = index;
}
Completed
Last Updated: 20 Feb 2014 15:16 by ADMIN
To reproduce:
- Add a checkbox column to a grid
- Add the following code to the ValueChanged event:
    void radGridView1_ValueChanged(object sender, EventArgs e)
        {
            if (radGridView1.CurrentColumn.Name == "BoolColumn")
            {