Unplanned
Last Updated: 30 Mar 2016 08:02 by ADMIN
To reproduce:

GridViewMultiComboBoxColumn supplierColumn = new GridViewMultiComboBoxColumn();
supplierColumn.SyncSelectionWithText = true;
supplierColumn.Name = "SupplierColumn";
supplierColumn.HeaderText = "Supplier";
supplierColumn.DropDownStyle = Telerik.WinControls.RadDropDownStyle.DropDown;
supplierColumn.AutoCompleteMode = AutoCompleteMode.Append;
supplierColumn.DataSource = this.suppliersBindingSource;
supplierColumn.ValueMember = "SupplierID";
supplierColumn.DisplayMember = "ContactName";
supplierColumn.FieldName = "SupplierID";
supplierColumn.Width = 200;
this.radGridView1.Columns.Add(supplierColumn);

Select the new row and try to enter some text that is not valid and press Enter. You will notice the new row is added with the last valid auto-completed value.

Workaround: cancel the UserAddingRow event if the entered text is not valid.
Unplanned
Last Updated: 30 Mar 2016 08:01 by ADMIN
To reproduce:

1. Populate RadGridView with data
2. Export the grid by using the SpreadExport
3. Open the produce Excel file and select  some cells to generate a chart in Excel. You will notice that it is not possible to create a complete chart with the selected data.

Workaround: use the ExportToExcelML >> http://www.telerik.com/help/winforms/gridview-exporting-data-export-to-excel-via-excelml-format.html 
Unplanned
Last Updated: 30 Mar 2016 07:58 by ADMIN
To reproduce:

private void Form1_Load(object sender, EventArgs e)
{
    this.customersTableAdapter.Fill(this.nwindDataSet.Customers);

    GridViewMultiComboBoxColumn col = new GridViewMultiComboBoxColumn("MCCB column");
    col.DataSource = this.customersBindingSource;
    col.DisplayMember = "ContactName";
    col.ValueMember = "CustomerID";
    this.radGridView1.Columns.Add(col);
    this.radGridView1.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill;
}

private void radGridView1_UserAddingRow(object sender, Telerik.WinControls.UI.GridViewRowCancelEventArgs e)
{
    if (e.Rows.First().Cells[0].Value+"" =="ALFKI")
    { 
        MessageBox.Show("Please select a product", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
        e.Cancel = true;

        this.radGridView1.BeginEdit();
    }
}

Please refer to the attached gif file.

Workaround: use the NumericUpDown.MouseDown event and call the RadGridView.BeginEdit method instead of activating the editor in the UserAddingRow event.
Unplanned
Last Updated: 30 Mar 2016 07:58 by ADMIN
When the current cell belongs to one of the data rows and you click with the left mouse button over a GridFilterCellElement , the editor is activated. However, if you navigate with the arrow keys, the editor is not activated and the user can not see any indication about the current cell.

Workaround:

private void radGridView1_ViewCellFormatting(object sender,
    Telerik.WinControls.UI.CellFormattingEventArgs e)
{
    GridFilterCellElement filterCell = e.CellElement as GridFilterCellElement;
    if (filterCell != null)
    {
        if (filterCell.IsCurrent)
        {
            filterCell.BorderWidth = 3;
        }
        else
        {
            filterCell.BorderWidth = 1;
        }
    }
}
Unplanned
Last Updated: 30 Mar 2016 07:55 by ADMIN
Description:
When you pin data rows from the child template to PinnedRowPosition.Top, it does not affect the row. However, when you pin the certain row to PinnedRowPosition.Bottom, the behavior is correct. The same issue is detected for the header rows from the child template.
Unplanned
Last Updated: 30 Mar 2016 07:54 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
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
Unplanned
Last Updated: 30 Mar 2016 07:53 by Svetlin
Workaround:
Private Sub radGridView1_CellFormatting(sender As Object, e As Telerik.WinControls.UI.CellFormattingEventArgs)
    If e.CellElement.IsPinned Then
        If e.CellElement.RowElement.DrawFill Then
            e.CellElement.DrawFill = False
        Else
            e.CellElement.ResetValue(LightVisualElement.DrawFillProperty, ValueResetFlags.Local)
        End If
    End If
End Sub
Unplanned
Last Updated: 29 Mar 2016 14:44 by Jesse Dyck
Here is how this issue can be worked around:
void radGridView1_CellEditorInitialized(object sender, GridViewCellEventArgs e) { ((RadMultiColumnComboBoxElement)e.ActiveEditor).AutoSizeDropDownToBestFit = true; ((RadMultiColumnComboBoxElement)e.ActiveEditor).DropDownAnimationEnabled = false; }
   
Unplanned
Last Updated: 29 Mar 2016 14:31 by ADMIN
When one exports a grid with text written in right-to-left the exported file has all text written in left-to-right.
Completed
Last Updated: 23 Mar 2016 09:46 by ADMIN
Use the attached sample project.

Workaround: hide the columns programmatically at run time.
Completed
Last Updated: 16 Mar 2016 13:23 by ADMIN
To reproduce:
- Use RowFormatting to change the font style to bold.
- Call the  BestFitColumns method.

Completed
Last Updated: 16 Mar 2016 13:22 by ADMIN
To reproduce:

 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
     Me.RadGridView1.DataSource = Me.ProductsBindingSource
     Me.ProductsTableAdapter.Fill(Me.NwindDataSet.Products)

     Dim obj As New ConditionalFormattingObject("MyCondition", ConditionTypes.Greater, "30", "", False)
     obj.CellBackColor = Color.SkyBlue
     obj.CellForeColor = Color.Red
     obj.TextAlignment = ContentAlignment.MiddleRight
     Me.RadGridView1.Columns("UnitPrice").ConditionalFormattingObjectList.Add(obj)
 End Sub

 Private Sub RadButton1_Click(sender As Object, e As EventArgs) Handles RadButton1.Click
     Dim mySQL As String = "SELECT * FROM Products where ProductName = 'Chaii'"
     Dim myTable As DataTable = getDataInTable(mySQL, My.Settings.NwindConnectionString)
     Me.RadGridView1.DataSource = myTable
 End Sub
 Public Shared Function getDataInTable(mySQLorTable As String, myConnectionString As String, Optional myTimeout As Integer = 30) As DataTable
    
     Using myConnection As New System.Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\Nwind.mdb")
         Dim myCommand As New OleDb.OleDbCommand(mySQLorTable, myConnection)
         myConnection.Open()
         Dim myDataTable As New DataTable
         Dim myAdapter As New OleDb.OleDbDataAdapter(myCommand)
         myAdapter.Fill(myDataTable)
         Return myDataTable
     End Using
 End Function


When you click the button, the grid is refilled with the query result which does not contain any rows. As a result, a DataException is thrown for each column: "There is no property descriptor corresponding to property name: 'ColumnName'" .  

Workaround: clear the conditional formatting objects, reset the DataSource and add the conditional formatting objects back
Completed
Last Updated: 14 Mar 2016 09:52 by ADMIN
How to reproduce: the MCCB column needs to be set with  AutoCompleteMode.SuggestAppend
public partial class Form1 : Form
{
    private List<MyComboItem> listItems;

    public Form1()
    {
        InitializeComponent();

        this.listItems = new List<MyComboItem>();

        listItems.Add(new MyComboItem("Item1", "This is test for item1"));
        listItems.Add(new MyComboItem("Atn time", "This is test for item2"));

        listItems.Add(new MyComboItem("Bc chars", "This is test for item3"));
        listItems.Add(new MyComboItem("Elsa", "This is test for item4"));
        listItems.Add(new MyComboItem("Elementary", "This is test for item4"));
        GridViewMultiComboBoxColumn gridviewColumn1 = radGridView1.Columns[0] as GridViewMultiComboBoxColumn;
        if (gridviewColumn1 != null)
        {
            gridviewColumn1.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
            gridviewColumn1.DropDownStyle = Telerik.WinControls.RadDropDownStyle.DropDown;

            gridviewColumn1.DataSource = listItems;
        }
    }
}

public class MyComboItem
{
    public string Code { get; set; }
    public string Description { get; set; }
    public MyComboItem(string code, string description)
    {
        this.Code = code;
        this.Description = description;
    }
}

Workaround: handle the CellEditorInitialized and remove the selection 
private void radGridView1_CellEditorInitialized(object sender, GridViewCellEventArgs e)
{
    if (radGridView1.CurrentColumn is GridViewMultiComboBoxColumn)
    {
        RadMultiColumnComboBoxElement editor = e.ActiveEditor as RadMultiColumnComboBoxElement;
        if (editor != null && e.Row is GridViewNewRowInfo)
        {
            editor.SelectedIndex = -1;
        }
    }
}
Completed
Last Updated: 14 Mar 2016 09:08 by ADMIN
To reproduce:
void radGridView1_CellValueChanged(object sender, Telerik.WinControls.UI.GridViewCellEventArgs e)
{
    if (e.Value == null || e.Value == DBNull.Value)
    {
        e.Row.Delete();
    }
}
-  Use the enter key to confirm the change


Workaround:
void radGridView1_CellEndEdit(object sender, Telerik.WinControls.UI.GridViewCellEventArgs e)
{
    if (e.Value == null || e.Value == DBNull.Value)
    {
        e.Row.Delete();
    }
}
Completed
Last Updated: 14 Mar 2016 08:19 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 0
Category: GridView
Type: Bug Report
0
To reproduce:
public Form1()
{
    InitializeComponent();

    BindingList<Item> items = new BindingList<Item>();
    for (int i = 0; i < 10; i++)
    {
        items.Add(new Item(i,"Item" + i , DeliveryType.Type1));
    }
    for (int i = 10; i < 20; i++)
    {
        items.Add(new Item(i, "Item" + i, DeliveryType.Type2));
    }
    for (int i = 20; i < 30; i++)
    {
        items.Add(new Item(i, "Item" + i, DeliveryType.Type3));
    }
    this.radGridView1.DataSource = items;
    this.radGridView1.AutoSizeColumnsMode = Telerik.WinControls.UI.GridViewAutoSizeColumnsMode.Fill; 
    
    this.radGridView1.EnableFiltering = true;
    CompositeFilterDescriptor compositeFilter = new CompositeFilterDescriptor();
    compositeFilter.FilterDescriptors.Add(new FilterDescriptor("DeliveryType", FilterOperator.IsEqualTo, DeliveryType.Type2));
    compositeFilter.FilterDescriptors.Add(new FilterDescriptor("DeliveryType", FilterOperator.IsEqualTo, DeliveryType.Type3));
    compositeFilter.LogicalOperator = FilterLogicalOperator.Or;
  
    this.radGridView1.FilterDescriptors.Add(compositeFilter);
}

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

    public string Name { get; set; }

    public DeliveryType DeliveryType { get; set; }

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

public enum DeliveryType
{ 
    Type1,
    Type2,
    Type3
}

Workaround: use custom filtering: http://docs.telerik.com/devtools/winforms/gridview/filtering/custom-filtering
Completed
Last Updated: 14 Mar 2016 08:00 by ADMIN
To reproduce:

BindingList<Item> items = new BindingList<Item>();

public Form1()
{
    InitializeComponent();
    
    for (int i = 0; i < 5; i++)
    {
        items.Add(new Item(i,i * 1.25m));
    }
    this.radGridView1.DataSource = items;
    this.radGridView1.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill;

    GridViewSummaryItem summaryItem = new GridViewSummaryItem();
    summaryItem.Name = "Price";
    summaryItem.Aggregate = GridAggregateFunction.Sum;
    GridViewSummaryRowItem summaryRowItem = new GridViewSummaryRowItem();
    summaryRowItem.Add(summaryItem);
    this.radGridView1.SummaryRowsTop.Add(summaryRowItem);
    this.timer1.Start();
}

public class Item  
{
    private int id;
    private decimal price;

    public Item(int id, decimal price)
    {
        this.id = id;
        this.price = price;
    }

    public int Id
    {
        get
        {
            return this.id;
        }
        set
        {
            this.id = value;
        }
    }

    public decimal Price
    {
        get
        {
            return this.price;
        }
        set
        {
            this.price = value; 
        }
    }
}

private void timer1_Tick(object sender, EventArgs e)
{
    items[0].Price += 1;
    this.radGridView1.Rows[0].InvalidateRow();
    this.radGridView1.MasterView.SummaryRows[0].InvalidateRow(); 
}

Workaround: refresh the MasterTemplate or implement the INotifyPropertyChanged
Completed
Last Updated: 14 Mar 2016 07:44 by ADMIN
To reproduce: 

public Form1()
{
    InitializeComponent();

    for (int i = 0; i < 10; i++)
    {
        this.radGridView1.Columns.Add("Col"+i);
    }
    this.radGridView1.TableElement.RowDragHint = null;
}

Workaround:
public Form1()
{
    InitializeComponent();

    for (int i = 0; i < 10; i++)
    {
        this.radGridView1.Columns.Add("Col"+i);
    }
    this.radGridView1.TableElement.RowDragHint = null;

    CustomRadGridViewDragDropService service = new CustomRadGridViewDragDropService(this.radGridView1.GridViewElement);
    this.radGridView1.GridViewElement.RegisterService(service);
    
}
public class CustomRadGridViewDragDropService : RadGridViewDragDropService
{
    public CustomRadGridViewDragDropService(RadGridViewElement gridViewElement) : base(gridViewElement)
    {
    }
    public override string Name
    {
        get
        {
            return typeof(RadGridViewDragDropService).Name;
        }
    }

    protected override void PrepareDragHint(ISupportDrop dropTarget)
    {
        if (this.GridViewElement.TableElement.RowDragHint == null)
        {
            return;
        }
        base.PrepareDragHint(dropTarget);
    }
    protected override IGridDragDropBehavior GetDragDropBehavior()
    {
        IGridDragDropBehavior behavior = null;
        ISupportDrop dropTarget = this.DropTarget;
        if (dropTarget is GridHeaderCellElement)
        {
            behavior = new CustomGridColumnDragDropBehvavior();
            return behavior;
        }
        return base.GetDragDropBehavior();
    }
}

public class CustomGridColumnDragDropBehvavior : GridColumnDragDropBehvavior
{
    public override Size GetDragHintSize(ISupportDrop dropTarget)
    {
        if (this.DragHint==null)
        {
            return new Size(0, 0);
        }
        return base.GetDragHintSize(dropTarget);
    }
}
Completed
Last Updated: 07 Mar 2016 14:38 by ADMIN
To reproduce:

public Form1()
{
    InitializeComponent();
    DataTable dt = new DataTable();
    for (int i = 0; i < 10; i++)
    {
        dt.Columns.Add("Col" + i);
    }

    for (int i = 0; i < 10; i++)
    {
        DataRow row = dt.NewRow();
        foreach (DataColumn col in dt.Columns)
        {
            row[col.ColumnName] = "Data " + i + "." + dt.Columns.IndexOf(col);
        }
        dt.Rows.Add(row);
    }
    this.radGridView1.DataSource = dt;
    this.radGridView1.AutoSizeColumnsMode = Telerik.WinControls.UI.GridViewAutoSizeColumnsMode.Fill;

    this.radGridView1.AddNewRowPosition = Telerik.WinControls.UI.SystemRowPosition.Bottom;
    this.radGridView1.Columns[9].IsVisible = false;
    this.radGridView1.Columns[8].ReadOnly = true;

    this.radGridView1.Columns[2].IsVisible = false;
    this.radGridView1.Columns[4].IsVisible = false;
    this.radGridView1.Columns[6].IsVisible = false;
}


Workaround: use a custom row behavior and control what to be the selected cell when pressing the Tab key for example: 

public Form1()
{
    InitializeComponent();
    DataTable dt = new DataTable();
    for (int i = 0; i < 10; i++)
    {
        dt.Columns.Add("Col" + i);
    }

    for (int i = 0; i < 10; i++)
    {
        DataRow row = dt.NewRow();
        foreach (DataColumn col in dt.Columns)
        {
            row[col.ColumnName] = "Data " + i + "." + dt.Columns.IndexOf(col);
        }
        dt.Rows.Add(row);
    }
    this.radGridView1.DataSource = dt;
    this.radGridView1.AutoSizeColumnsMode = Telerik.WinControls.UI.GridViewAutoSizeColumnsMode.Fill;

    this.radGridView1.AddNewRowPosition = Telerik.WinControls.UI.SystemRowPosition.Bottom;
    this.radGridView1.Columns[9].IsVisible = false;
    this.radGridView1.Columns[8].ReadOnly = true;

    this.radGridView1.Columns[2].IsVisible = false;
    this.radGridView1.Columns[4].IsVisible = false;
    this.radGridView1.Columns[6].IsVisible = false;

    //register the custom row  behavior
    BaseGridBehavior gridBehavior = radGridView1.GridBehavior as BaseGridBehavior;
    gridBehavior.UnregisterBehavior(typeof(GridViewNewRowInfo));
    gridBehavior.RegisterBehavior(typeof(GridViewNewRowInfo), new CustomGridHierarchyRowBehavior());
}

public class CustomGridHierarchyRowBehavior : GridNewRowBehavior
{
    protected override bool ProcessTabKey(KeyEventArgs keys)
    {
        bool isLastColumn = this.Navigator.IsLastColumn(this.GridControl.CurrentColumn);
        bool result = base.ProcessTabKey(keys);
        if (isLastColumn)
        {
            this.GridControl.CurrentColumn = this.GridControl.Columns[0];
            this.GridControl.BeginEdit();
        }
        return result;
    }
}
Completed
Last Updated: 07 Mar 2016 14:14 by ADMIN
To reproduce:
- Add some columns to a grid and make one read-only.
- Add a value to the new row then click the read-only cell.
- Click outside of the grid (focus another control). 
- The new row is not added.

Workaround:
radgridView1.EndEdit()
radgridView1.MasterView.TableAddNewRow.EndAddNewRow()

Completed
Last Updated: 07 Mar 2016 13:30 by ADMIN
To reproduce:
- Sort the grid and then reset the data source.
- Format the rows like this:
void radGridView1_RowFormatting(object sender, Telerik.WinControls.UI.RowFormattingEventArgs e)
{
    string exception_status = "";
    string completed_user = "";

    if (!DBNull.Value.Equals(e.RowElement.RowInfo.Cells["Name"].Value))
    {
        exception_status = e.RowElement.RowInfo.Cells["Name"].Value.ToString();
    }

    if (!DBNull.Value.Equals(e.RowElement.RowInfo.Cells["Drug"].Value))
    {
        completed_user = e.RowElement.RowInfo.Cells["Drug"].Value.ToString().Trim();
    }

    if (exception_status == "Sam" && completed_user == "Enebrel")
    {
        e.RowElement.ForeColor = Color.Red;
    }
    else
    {
        e.RowElement.ForeColor = Color.Black;
    }
}
Workaround:
if (e.RowElement.RowInfo.Cells.Count ==0)
{
    return;
}