Completed
Last Updated: 07 Dec 2016 14:06 by ADMIN
To reproduce:

private void Form1_Load(object sender, EventArgs e)
{ 
    this.suppliersTableAdapter.Fill(this.nwindDataSet.Suppliers); 
    this.productsTableAdapter.Fill(this.nwindDataSet.Products);

    radGridView1.DataSource = nwindDataSet.Suppliers;
    radGridView1.BestFitColumns(BestFitColumnMode.AllCells);
    GridViewTemplate template = CreateTemplate(this.productsBindingSource);
    template.DataSource = nwindDataSet.Products;
    radGridView1.MasterTemplate.Templates.Add(template);

    GridViewRelation relation = new GridViewRelation(radGridView1.MasterTemplate);
    relation.ChildTemplate = template;
    relation.RelationName = "SuppliersProducts";
    relation.ParentColumnNames.Add("SupplierID");
    relation.ChildColumnNames.Add("SupplierID");
    radGridView1.Relations.Add(relation);
}

private GridViewTemplate CreateTemplate(BindingSource source)
{
    GridViewTemplate template = new GridViewTemplate();
    template.Caption = "TaskTemplate";
    template.AllowAddNewRow = false;
    template.EnableFiltering = true;
    FilterDescriptor filter = new FilterDescriptor();
    filter.PropertyName = "ReorderLevel";
    filter.Operator = FilterOperator.IsNotEqualTo;
    filter.Value = 25;
    template.FilterDescriptors.Add(filter);
    template.ShowFilteringRow = false;   
    template.SortDescriptors.Expression = "ProductName ASC, UnitPrice ASC";
    template.DataSource = source;
    template.BestFitColumns(BestFitColumnMode.AllCells);

    return template;
}

Workaround: set the filter after the hierarchy setup:
private void Form1_Load(object sender, EventArgs e)
{ 
    this.suppliersTableAdapter.Fill(this.nwindDataSet.Suppliers); 
    this.productsTableAdapter.Fill(this.nwindDataSet.Products);

    radGridView1.DataSource = nwindDataSet.Suppliers;
    radGridView1.BestFitColumns(BestFitColumnMode.AllCells);
    GridViewTemplate template = CreateTemplate(this.productsBindingSource);
    template.DataSource = nwindDataSet.Products;
    radGridView1.MasterTemplate.Templates.Add(template);

    GridViewRelation relation = new GridViewRelation(radGridView1.MasterTemplate);
    relation.ChildTemplate = template;
    relation.RelationName = "SuppliersProducts";
    relation.ParentColumnNames.Add("SupplierID");
    relation.ChildColumnNames.Add("SupplierID");
    radGridView1.Relations.Add(relation);
    
    FilterDescriptor filter = new FilterDescriptor();
    filter.PropertyName = "ReorderLevel";
    filter.Operator = FilterOperator.IsNotEqualTo;
    filter.Value = 25; 
    template.FilterDescriptors.Add(filter);
}

private GridViewTemplate CreateTemplate(BindingSource source)
{
    GridViewTemplate template = new GridViewTemplate();
    template.Caption = "TaskTemplate";
    template.AllowAddNewRow = false;
    template.EnableFiltering = true;
  
    template.ShowFilteringRow = false;   
    template.SortDescriptors.Expression = "ProductName ASC, UnitPrice ASC";
    template.DataSource = source;
    template.BestFitColumns(BestFitColumnMode.AllCells);
    
   
    return template;
}

Completed
Last Updated: 02 Jun 2016 13:54 by ADMIN
To reproduce:

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Me.ProductsTableAdapter.Fill(Me.NwindDataSet.Products)
    Me.CategoriesTableAdapter.Fill(Me.NwindDataSet.Categories)

    RadGridView1.AutoGenerateHierarchy = True
    RadGridView1.DataSource = Me.NwindDataSet
    RadGridView1.DataMember = "Categories"

    Me.RadGridView1.MasterTemplate.AutoSizeColumnsMode = Telerik.WinControls.UI.GridViewAutoSizeColumnsMode.Fill
    Me.RadGridView1.MasterTemplate.Templates(0).AutoSizeColumnsMode = Telerik.WinControls.UI.GridViewAutoSizeColumnsMode.Fill

    Me.RadGridView1.UseScrollbarsInHierarchy = True
End Sub

Private Sub RadGridView1_ViewCellFormatting(sender As Object, e As CellFormattingEventArgs) Handles RadGridView1.ViewCellFormatting
    If e.Row.HierarchyLevel > 0 Then
        e.CellElement.TableElement.RowHeaderColumnWidth = 100
    End If
End Sub
Completed
Last Updated: 26 Jul 2016 11:38 by ADMIN
To reproduce:
 private void Form1_Load(object sender, EventArgs e)
 { 
     this.productsTableAdapter.Fill(this.nwindDataSet.Products); 
     this.categoriesTableAdapter.Fill(this.nwindDataSet.Categories);

     this.radGridView1.DataSource = this.productsBindingSource;
     GridViewMultiComboBoxColumn col = new GridViewMultiComboBoxColumn();
     col.DataSource = this.categoriesBindingSource;
     col.MinWidth = 200;
     col.DisplayMember = "CategoryName";
     col.ValueMember = "CategoryID"; 
     this.radGridView1.Columns.Add(col);
     this.radGridView1.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill;
     this.radGridView1.CellValueChanged += radGridView1_CellValueChanged;
 }

 private void radGridView1_CellValueChanged(object sender, GridViewCellEventArgs e)
 {
     RadMessageBox.Show("CellValueChanged. Value >> " + e.Value.ToString());
 }

Completed
Last Updated: 09 Jun 2016 07:45 by ADMIN
To reproduce:

Sub New()
    InitializeComponent()

    ThemeResolutionService.ApplicationThemeName = "Breeze"

    Dim dt As New DataTable
    dt.Columns.Add("Id", GetType(Integer))
    dt.Columns.Add("ParentId", GetType(Integer))
    dt.Columns.Add("Name", GetType(String))

    For index = 1 To 5
        dt.Rows.Add(index, 0, "Parent" & index)
    Next
    Dim rand As New Random
    For index = 6 To 25
        dt.Rows.Add(index, rand.Next(1, 6), "Parent" & index)
    Next
    Me.RadGridView1.Relations.AddSelfReference(Me.RadGridView1.MasterTemplate, "Id", "ParentId")
    Me.RadGridView1.DataSource = dt
    Me.RadGridView1.AutoSizeColumnsMode = Telerik.WinControls.UI.GridViewAutoSizeColumnsMode.Fill

    Me.RadGridView1.AutoSizeRows = True
End Sub
Completed
Last Updated: 19 Jan 2017 07:00 by ADMIN
To reproduce:
private void radButton1_Click(object sender, EventArgs e)
{
    radGridView1.Rows[0].Cells[0].Value = false;
}

private void Form1_Load(object sender, EventArgs e)
{
    radGridView1.AllowSearchRow = true;
    radGridView1.TableElement.SearchHighlightColor = Color.Orange;
    radGridView1.AutoExpandGroups = true;

    DataTable dt = new DataTable();

    dt.Columns.Add("test", typeof(bool));

    dt.Rows.Add(true);
    dt.Rows.Add(true);
    dt.Rows.Add(true);
    dt.Rows.Add(true);
    dt.Rows.Add(true);
    dt.Rows.Add(true);
    dt.Rows.Add(true);
    dt.Rows.Add(true);
    dt.Rows.Add(true);
    dt.Rows.Add(true);
    dt.Rows.Add(true);
    dt.Rows.Add(true);
    dt.Rows.Add(true);
    dt.Rows.Add(true);
    dt.Rows.Add(true);
    dt.Rows.Add(true);
    dt.Rows.Add(true);
    dt.Rows.Add(true);
    dt.Rows.Add(true);
    dt.Rows.Add(true);
    dt.Rows.Add(true);
    dt.Rows.Add(true);
    dt.Rows.Add(true);
    dt.Rows.Add(true);
    dt.Rows.Add(true);

    radGridView1.DataSource = dt;

    ((Telerik.WinControls.UI.GridViewCheckBoxColumn) radGridView1.Columns[0]).EnableHeaderCheckBox = true;
    ((Telerik.WinControls.UI.GridViewCheckBoxColumn) radGridView1.Columns[0]).Width = radGridView1.Width - 50;

    radGridView1.TableElement.Update(Telerik.WinControls.UI.GridUINotifyAction.Reset); //force header checkbox to check

    radGridView1.TableElement.ScrollTo(15, 0);
}

Workaround:
private void radButton1_Click(object sender, EventArgs e)
{
    radGridView1.Rows[0].Cells[0].Value = false;
    radGridView1.TableElement.Update(Telerik.WinControls.UI.GridUINotifyAction.Reset); //force header checkbox to check
}
Completed
Last Updated: 09 Jun 2016 10:44 by ADMIN
To reproduce:

private void Form1_Load(object sender, EventArgs e) 
{ 
    this.productsTableAdapter.Fill(this.nwindDataSet.Products);
    this.radGridView1.EnableFiltering = true;
    this.radGridView1.ShowHeaderCellButtons = true;
    this.radGridView1.ShowFilteringRow = false;

    this.radGridView1.Columns["UnitPrice"].FormatString = "{0:$#,###0.00;-$#,###0.00;$0.00}";
}

Workaround:  in order to format the cells, use the CellFormatting event. As to the filter popup, use the following approach:
 this.radGridView1.FilterPopupInitialized += radGridView1_FilterPopupInitialized;

private void radGridView1_FilterPopupInitialized(object sender, Telerik.WinControls.UI.FilterPopupInitializedEventArgs e)
{
    RadListFilterPopup popup = e.FilterPopup as RadListFilterPopup;
    if (popup != null)
    {
        popup.MenuTreeElement.TreeView.NodeFormatting -= TreeView_NodeFormatting;
        popup.MenuTreeElement.TreeView.NodeFormatting += TreeView_NodeFormatting;
    }
}

private void TreeView_NodeFormatting(object sender, TreeNodeFormattingEventArgs e)
{
    decimal price;
    if (decimal.TryParse(e.Node.Text, out price))
    {
        e.NodeElement.ContentElement.Text = string.Format("{0:$#,###0.00;-$#,###0.00;$0.00}", price);
    }
}
Declined
Last Updated: 07 Jun 2016 05:32 by ADMIN
Please refer to the attached project.

Workakround: call the BeginEdit method in the RadGridView.Click event.

Completed
Last Updated: 15 Jun 2016 07:58 by ADMIN
To reproduce: setup the hierarchy at design time: http://docs.telerik.com/devtools/winforms/gridview/hierarchical-grid/tutorial-binding-to-hierarchical-data

Please refer to the attached gif file illustrating the exact steps.

NOTE: when the "Object does not match target type" error message is displayed, some of the properties are missing, e.g. MaxLength.

Workaround: modify the columns' properties at run time.
Completed
Last Updated: 05 Oct 2016 10:38 by ADMIN
To reproduce: follow the steps illustrated in the attached gif file.
Completed
Last Updated: 25 May 2016 14:25 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 0
Category: GridView
Type: Bug Report
0
To reproduce:

private void Form1_Load(object sender, EventArgs e)
{
    this.productsTableAdapter.Fill(this.nwindDataSet.Products);
    this.radGridView1.BestFitColumns(BestFitColumnMode.AllCells);
}

private void radGridView1_ViewCellFormatting(object sender, Telerik.WinControls.UI.CellFormattingEventArgs e)
{
    if (e.CellElement is GridGroupContentCellElement)
    {
        e.CellElement.TextWrap = true;
    }
    else
    {
        e.CellElement.ResetValue(LightVisualElement.TextWrapProperty, ValueResetFlags.Local);
    }
}

Workaround: set the AutoSizeColumnsMode property to GridViewAutoSizeColumnsMode.Fill and use the ViewCellFormatting event to wrap the text: 

private void radGridView1_ViewCellFormatting(object sender, Telerik.WinControls.UI.CellFormattingEventArgs e)
{
    if (e.CellElement is GridGroupContentCellElement)
    {
        e.CellElement.TextWrap = true;
    }
    else
    {
        e.CellElement.ResetValue(LightVisualElement.TextWrapProperty, ValueResetFlags.Local);
    }
}
Completed
Last Updated: 26 May 2016 07:30 by ADMIN
How to reproduce: 

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

        this.radGridView1.DataSource = this.GetData();
        this.radGridView1.AutoSizeColumnsMode = Telerik.WinControls.UI.GridViewAutoSizeColumnsMode.Fill;
        this.radGridView1.Columns[0].DisableHTMLRendering = false;

        this.radGridView1.PrintCellFormatting += radGridView1_PrintCellFormatting;
    }

    private void radGridView1_PrintCellFormatting(object sender, Telerik.WinControls.UI.PrintCellFormattingEventArgs e)
    {
        e.PrintCell.EnableHtmlTextRendering = true;
    }

    private DataTable GetData()
        {
            DataTable dt = new DataTable();

            dt.Columns.Add("Name", typeof(string));
            dt.Columns.Add("Date", typeof(DateTime));
            dt.Columns.Add("Bool", typeof(bool));
            dt.Columns.Add("Description", typeof(string));
            for (int i = 0; i < 10; i++)
            {
                for (int j = 0; j < 5; j++)
                {
                    dt.Rows.Add(@"<html><b>Name " + j, DateTime.Now.AddDays(i), i % 2 == 0 ? true : false, "Description " + i);
                }
            }

            return dt;
        }

    private void radButton1_Click(object sender, EventArgs e)
    {
        GridPrintStyle style = new GridPrintStyle();
        style.FitWidthMode = PrintFitWidthMode.FitPageWidth;
        style.PrintGrouping = true;
        style.PrintSummaries = false;

        style.PrintHeaderOnEachPage = true;
        style.PrintHiddenColumns = false;
        style.CellPadding = new Padding(100, 0, 0, 0);

        this.radGridView1.PrintStyle = style;
        this.radGridView1.PrintPreview();
    }
}


Workaround: refer to the attached project
Completed
Last Updated: 06 Jun 2016 13:47 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 0
Category: GridView
Type: Bug Report
0
To reproduce:

this.radGridView1.EnableFiltering = true;
this.radGridView1.Columns.Add("Test column");
this.radGridView1.AutoSizeColumnsMode = Telerik.WinControls.UI.GridViewAutoSizeColumnsMode.Fill;
this.radGridView1.Rows.Add("Test ");

Workaround: use custom filtering: 

this.radGridView1.EnableCustomFiltering = true;
this.radGridView1.CustomFiltering += radGridView1_CustomFiltering;


private void radGridView1_CustomFiltering(object sender, GridViewCustomFilteringEventArgs e)
{
    if (this.radGridView1.FilterDescriptors.Count > 0)
    {
        GridViewCellInfo cell = e.Row.Cells[this.radGridView1.FilterDescriptors[0].PropertyName];
        e.Visible = cell.Value.ToString().StartsWith(this.radGridView1.FilterDescriptors[0].Value.ToString());
    }
}
Completed
Last Updated: 12 Jul 2016 09:34 by ADMIN
To reproduce: populate RadGridView with data and use the following code snippet:
Me.RadGridView1.TableElement.TableHeaderHeight = 60
RadGridView1.PrintPreview()

Workaround:

Private Sub RadButton1_Click(sender As Object, e As EventArgs) Handles RadButton1.Click
    Me.RadGridView1.TableElement.TableHeaderHeight = 60
    Dim printStyle As GridPrintStyle = New GridPrintStyle(RadGridView1)
    Dim renderer As CustomTableViewDefinitionPrintRenderer = New CustomTableViewDefinitionPrintRenderer(RadGridView1)
    printStyle.PrintRenderer = renderer
    RadGridView1.PrintStyle = printStyle
    RadGridView1.PrintPreview()
End Sub

Public Class CustomTableViewDefinitionPrintRenderer
Inherits TableViewDefinitionPrintRenderer

    Public Sub New(grid As RadGridView)
        MyBase.New(grid)

    End Sub

    Private Function GetRowLayout(row As GridViewRowInfo, fitWidthMode As PrintFitWidthMode, _
                                  hierarchyIndent As Integer, drawArea As Rectangle) As TableViewRowLayout
        Dim hashKey As Integer = row.ViewTemplate.GetHashCode() + row.HierarchyLevel
        Dim fi As FieldInfo = GetType(TableViewDefinitionPrintRenderer).GetField("rowLayouts", BindingFlags.NonPublic Or BindingFlags.Instance)
        Dim rowLayouts As Dictionary(Of Integer, TableViewRowLayout) = fi.GetValue(Me)
        If rowLayouts.ContainsKey(hashKey) Then
            Return rowLayouts(hashKey)
        End If

        Dim table As GridTableElement = TryCast(row.ViewTemplate.ViewDefinition.CreateViewUIElement(row.ViewInfo), GridTableElement)
        table.Initialize(Me.GridView.GridViewElement, row.ViewInfo)
        table.RowHeight = Me.GridView.TableElement.RowHeight
        table.TableHeaderHeight = Me.GridView.TableElement.TableHeaderHeight
        Me.GridView.ElementTree.ApplyThemeToElement(table)

        Dim rowLayout As New TableViewRowLayout()
        rowLayout.Context = GridLayoutContext.Printer
        rowLayout.Initialize(table)

        Dim systemWidth As Integer = 0

        For Each c As GridViewColumn In rowLayout.RenderColumns
            If TypeOf c Is GridViewRowHeaderColumn OrElse TypeOf c Is GridViewIndentColumn Then
                systemWidth += rowLayout.GetColumnWidth(c)
            End If
        Next

        Me.GridView.BeginUpdate()

        Dim mode As GridViewAutoSizeColumnsMode = rowLayout.ViewTemplate.AutoSizeColumnsMode

        If fitWidthMode = PrintFitWidthMode.FitPageWidth Then
            Dim state As ColumnsState = Me.SaveColumnsState(rowLayout.ViewTemplate)
            rowLayout.ViewTemplate.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill
            Dim groupLevel As Integer = If(row.Group IsNot Nothing, row.Group.Level + 1, 0)
            rowLayout.MeasureRow(New SizeF(drawArea.Width + systemWidth - ((row.HierarchyLevel - groupLevel) * hierarchyIndent), drawArea.Height))
            Me.RestoreColumnsState(state)
        Else
            rowLayout.ViewTemplate.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.None
            rowLayout.MeasureRow(New SizeF(Me.GridView.Width, Me.GridView.Height))
        End If

        rowLayout.ViewTemplate.AutoSizeColumnsMode = mode

        Me.GridView.EndUpdate(False)

        rowLayouts.Add(hashKey, rowLayout)

        Return rowLayout
    End Function

    Public Overrides Sub DrawPage(traverser As PrintGridTraverser, drawArea As Rectangle, _
                                  graphics As Graphics, settings As GridPrintSettings, pageNumber As Integer)
        Dim fi As FieldInfo = GetType(TableViewDefinitionPrintRenderer).GetField("currentPage", BindingFlags.Instance Or BindingFlags.NonPublic)
        Dim currentPage As Integer = fi.GetValue(Me)
        Dim skipPage As Boolean = currentPage <> pageNumber
        Dim drawAreaHeight As Integer = drawArea.Height
        Dim currentX As Integer = drawArea.X
        Dim currentY As Integer = drawArea.Y

        Dim rowLayout As TableViewRowLayout = Me.GetRowLayout(Me.GridView.MasterView.TableHeaderRow, _
                                                              settings.FitWidthMode, settings.HierarchyIndent, drawArea)
        rowLayout.IgnoreColumnVisibility = settings.PrintHiddenColumns

        Dim systemWidth As Integer = 0

        For Each c As GridViewColumn In rowLayout.RenderColumns
            If TypeOf c Is GridViewRowHeaderColumn OrElse TypeOf c Is GridViewIndentColumn Then
                systemWidth += rowLayout.GetColumnWidth(c)
            End If
        Next

        Dim rowWidth As Integer = CInt(rowLayout.DesiredSize.Width) - systemWidth

        If settings.FitWidthMode = PrintFitWidthMode.NoFitCentered Then
            currentX += ((drawArea.Width - rowWidth) / 2)
        End If

        Dim fi2 As FieldInfo = GetType(TableViewDefinitionPrintRenderer).GetField("firstPage", _
                                                                                  BindingFlags.Instance Or BindingFlags.NonPublic)
        Dim firstPage As Integer = fi2.GetValue(Me)
        If ((Me.GridView.ShowColumnHeaders AndAlso (firstPage AndAlso pageNumber = 1)) OrElse settings.PrintHeaderOnEachPage) _
            AndAlso Not settings.PrintHierarchy Then
            Me.PrintRow(Me.GridView.MasterView.TableHeaderRow, rowLayout, settings, currentX, currentY, graphics, _
                        drawArea)
            Dim rowHeight As Integer = Me.GetDataRowHeight(Me.GridView.MasterView.TableHeaderRow, rowLayout) + Me.GridView.TableElement.RowSpacing
            currentY += rowHeight
            drawAreaHeight -= rowHeight
        End If

        fi2.SetValue(Me, False)
        Dim skipPageCurrentY As Integer = currentY
        Dim row As GridViewRowInfo = Nothing

        If Me.PrintPages.Count > 0 AndAlso Not settings.PrintHierarchy Then
            row = traverser.Current
        End If

        Dim firstRow As Boolean = True

        While traverser.MoveNext()
            If Not (TypeOf traverser.Current Is GridViewDataRowInfo OrElse TypeOf traverser.Current Is GridViewGroupRowInfo OrElse _
                    TypeOf traverser.Current Is GridViewSummaryRowInfo OrElse (TypeOf traverser.Current Is GridViewTableHeaderRowInfo _
                                                                               AndAlso settings.PrintHierarchy)) Then
                Continue While
            End If

            Dim hierarchyRow As GridViewHierarchyRowInfo = TryCast(traverser.Current, GridViewHierarchyRowInfo)

            If hierarchyRow IsNot Nothing AndAlso hierarchyRow.Views.Count > 0 Then
                Select Case settings.ChildViewPrintMode
                    Case ChildViewPrintMode.PrintFirstView
                        hierarchyRow.ActiveView = hierarchyRow.Views(0)
                        Exit Select
                    Case ChildViewPrintMode.PrintCurrentlyActiveView
                        'Do nothing the view is already selected
                        Exit Select
                    Case ChildViewPrintMode.SelectViewToPrint
                        Dim e As New ChildViewPrintingEventArgs(hierarchyRow.Views.IndexOf(hierarchyRow.ActiveView), hierarchyRow)
                        Me.OnChildViewPrinting(e)
                        hierarchyRow.ActiveView = hierarchyRow.Views(e.ActiveViewIndex)
                        Exit Select
                End Select
            End If

            rowLayout = Me.GetRowLayout(traverser.Current, settings.FitWidthMode, settings.HierarchyIndent, drawArea)

            Dim rowHeight As Integer = 0

            If TypeOf traverser.Current Is GridViewGroupRowInfo Then
                rowHeight = Me.GetRowSize(traverser.Current, rowLayout).Height
            Else
                rowHeight = Me.GetDataRowHeight(traverser.Current, rowLayout)
            End If

            If (currentY + rowHeight >= drawArea.Bottom OrElse skipPageCurrentY + rowHeight >= drawArea.Bottom) AndAlso Not firstRow Then
                traverser.MovePrevious()
                skipPageCurrentY = currentY
                skipPage = currentPage <> pageNumber
                fi.SetValue(Me, currentPage + 1)

                If skipPage Then
                    Continue While
                Else
                    Exit While
                End If
            End If

            If TypeOf traverser.Current Is GridViewGroupRowInfo Then
                If settings.PrintGrouping Then
                    If currentPage = pageNumber Then
                        Me.PrintRowWideCell(traverser.Current, rowLayout, settings, currentX, currentY, graphics)
                        currentY += rowHeight + Me.GridView.TableElement.RowSpacing
                    Else
                        skipPageCurrentY += rowHeight + Me.GridView.TableElement.RowSpacing
                    End If
                End If
            Else
                If TypeOf traverser.Current Is GridViewSummaryRowInfo AndAlso Not settings.PrintSummaries Then
                    Continue While
                End If

                If currentPage = pageNumber Then
                    Me.PrintRow(traverser.Current, rowLayout, settings, currentX, currentY, graphics, _
                                drawArea)
                    currentY += rowHeight + Me.GridView.TableElement.RowSpacing
                Else
                    skipPageCurrentY += rowHeight + Me.GridView.TableElement.RowSpacing
                End If
            End If

            If drawAreaHeight < rowHeight AndAlso firstRow Then
                fi.SetValue(Me, currentPage + 1)

                Exit While
            End If

            firstRow = False
        End While

        If Me.PrintPages.Count > 0 AndAlso Not settings.PrintHierarchy Then
            If currentY + Me.GetDataRowHeight(traverser.Current, rowLayout) < drawArea.Bottom OrElse _
                skipPageCurrentY + Me.GetDataRowHeight(traverser.Current, rowLayout) < drawArea.Bottom Then
                fi.SetValue(Me, currentPage + 1)
            End If

            Me.CurrentPrintPage += 1
            Me.CurrentPrintPage = Me.CurrentPrintPage Mod Me.PrintPages.Count

            If Me.CurrentPrintPage > 0 Then
                If row Is Nothing Then
                    traverser.Reset()
                Else
                    traverser.GoToRow(row)
                End If
            End If
        End If
    End Sub
End Class
Completed
Last Updated: 02 Jun 2016 14:29 by ADMIN
To reproduce:
Open the attached project, select two rows and delete them.

Workaround:
private void RadGridView1_RowValidating(object sender, Telerik.WinControls.UI.RowValidatingEventArgs e)
{
    if (e.RowIndex != -1)
    {
       
    }
}
Completed
Last Updated: 16 Jun 2016 10:15 by ADMIN
To reproduce:
- Bind the grid and reset its data source in the CellValueChanged event handler.
- Start the application, click in a cell, delete the contents and right click a header cell.
- Exception is thrown.

Workaround:

class MyGridHeaderCellElement : GridHeaderCellElement
{
    public MyGridHeaderCellElement(GridViewColumn col, GridRowElement row) : base(col, row)
    { }
    protected override Type ThemeEffectiveType
    {
        get
        {
            return typeof(GridHeaderCellElement);
        }
    }
    protected override void ShowContextMenu()
    {
        if (this.ViewTemplate != null)
        {
            base.ShowContextMenu();
        }
      
    }
}
private void RadGridView1_CreateCell(object sender, GridViewCreateCellEventArgs e)
{
    if (e.CellType == typeof(GridHeaderCellElement))
    {
        e.CellType = typeof(MyGridHeaderCellElement);
    }
}

Completed
Last Updated: 12 Sep 2016 05:21 by ADMIN
To reproduce:
- Bind the grid to progress binding source at design time. 
- Locate GroupDescriptors in Properties and click the ellipsis button to open the GroupDescriptor Collection Editor.
- Click Add and select the new item.
- Select the GroupNames collection to open the SortDescriptor Collection Editor.
- Click Add.
- An exception is thrown and the UI freezes.

Workaround:
Add descriptors at runime.
Completed
Last Updated: 02 Aug 2016 07:47 by ADMIN
To reproduce: please refer to the attached sample project.

1. Edit the CommonInt property for the first child row.
2. Edit the CommonInt property for the second child row.

Workaround: Add the grid programmatically at run time.

Second Workaround: 

this.radGridView1.CellValueChanged+=radGridView1_CellValueChanged;

private void radGridView1_CellValueChanged(object sender, GridViewCellEventArgs e)
        {
            e.Column.OwnerTemplate.Refresh(e.Column);
        }
Unplanned
Last Updated: 05 Aug 2016 07:56 by ADMIN
To reproduce:
- Add DateTime column and set the RowHeight to 20.
- Set the theme to Windows7.
- The text is not visible when the editor is shown.

Workaround:
private void RadGridView2_CellEditorInitialized(object sender, GridViewCellEventArgs e)
{
    RadDateTimeEditor editor = e.ActiveEditor as RadDateTimeEditor;
    if (editor != null)
    {
        var element = editor.EditorElement as RadDateTimeEditorElement;
        element.Font = new Font("Segoe UI", 8, FontStyle.Regular);
        element.Children[1].Visibility = ElementVisibility.Collapsed;
        element.TextBoxElement.ShowBorder = false;        
        element.TextBoxElement.TextBoxItem.HostedControl.MinimumSize = new Size(0, 12);
    }
}
Completed
Last Updated: 02 Aug 2016 06:48 by ADMIN
How to reproduce:
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();

        this.radGridView1.DataSource = this.GetSampleData();
        this.radGridView1.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill;
        this.radGridView1.EnableFiltering = true;
        this.radGridView1.ShowFilteringRow = false;
        this.radGridView1.ShowHeaderCellButtons = true;
    }

    private DataTable GetSampleData()
    {
        DataTable dt = new DataTable();
        dt.Columns.Add("Id", typeof(double));
        dt.Columns.Add("Name", typeof(string));
        dt.Columns.Add("IsValid", typeof(bool));
        dt.Columns.Add("Date", typeof(DateTime));

        for (int i = 0; i < 115; i++)
        {
            dt.Rows.Add(((double)i * 5 / 7) * 3, "Name " + i, i % 2 == 0, DateTime.Now.AddDays(i));
        }

        return dt;
    }
}

Workaround specify decimal as the type of the column in the DataTable object or clone the DataTAble object and change the type of the column:
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();

        DataTable dt = this.GetSampleData();
        DataTable dtCloned = dt.Clone();
        dtCloned.Columns[0].DataType = typeof(decimal);
        foreach (DataRow row in dt.Rows)
        {
            dtCloned.ImportRow(row);
        }

        this.radGridView1.DataSource = dtCloned;
        this.radGridView1.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill;
        this.radGridView1.EnableFiltering = true;
        this.radGridView1.ShowFilteringRow = false;
        this.radGridView1.ShowHeaderCellButtons = true;
    }

    private DataTable GetSampleData()
    {
        DataTable dt = new DataTable();
        dt.Columns.Add("Id", typeof(double));
        dt.Columns.Add("Name", typeof(string));
        dt.Columns.Add("IsValid", typeof(bool));
        dt.Columns.Add("Date", typeof(DateTime));

        for (int i = 0; i < 115; i++)
        {
            dt.Rows.Add(((double)i * 5 / 7) * 3, "Name " + i, i % 2 == 0, DateTime.Now.AddDays(i));
        }

        return dt;
    }
}

Completed
Last Updated: 28 Sep 2016 06:40 by ADMIN
To reproduce:

public Form1()
{
    InitializeComponent();
    List<Item> items = new List<Item>();
    for (int i = 0; i < 10; i++)
    {
        items.Add(new Item(i,"Item" + i,Color.Red));
    }
    this.radGridView1.DataSource = items;
    this.radGridView1.AutoSizeColumnsMode = Telerik.WinControls.UI.GridViewAutoSizeColumnsMode.Fill;
    this.radGridView1.CellValidating += radGridView1_CellValidating;
}

private void radGridView1_CellValidating(object sender, Telerik.WinControls.UI.CellValidatingEventArgs e)
{
    if (e.ActiveEditor != null && e.ActiveEditor is GridColorPickerEditor)
    {
        Color c = (Color)e.Value;
        if (c == Color.Red)
        {
            e.Cancel = true;
            Console.WriteLine("Red is not allowed!");
        }
    }
}

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

    public string Name { get; set; }

    public Color Color { get; set; }

    public Item(int id, string name, Color color)
    {
        this.Id = id;
        this.Name = name;
        this.Color = color;
    }
}

Steps:
1. Activate the editor for the Color cell.
2. Leave the color as it
3. Press the Enter key. The CellValidating event is fired twice.

Note: it seems that when the color text is selected, the event is fired twice.