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
Declined
Last Updated: 19 Nov 2018 16:15 by ADMIN
To reproduce:
- Use a column with numbers stored as strings.
- Set the data type to decimal
- The columns should be sorted according to the number value not alphabetically.

Workaround:
var col = new GridViewTextBoxColumn();
col.DataTypeConverter = new DecimalConverter();
col.FieldName = "Dosage";
col.UseDataTypeConverterWhenSorting = true;
col.DataType = typeof(decimal);
radGridView1.Columns.Add(col);

public class DecimalConverter : TypeConverter
{
    public override bool CanConvertTo(ITypeDescriptorContext context, Type destination_type)
    {
        
        if (destination_type == typeof(decimal))
        {
            return true;
        }

        return base.CanConvertTo(context, destination_type);
    }
    public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destination_type)
    {
        if (destination_type == typeof(decimal))
        {
            return decimal.Parse(value.ToString());
        }

        return base.ConvertTo(context, culture, value, destination_type);
    }
}
Completed
Last Updated: 07 Nov 2018 13:56 by Dimitar
Workaround:

        private void radGridView1_ConditionalFormattingFormShown(object sender, EventArgs e)
        {
            ConditionalFormattingForm f = sender as ConditionalFormattingForm;
            if (f != null)
            {
                RadPropertyGrid radPropertyGridProperties = f.Controls["radPropertyGridProperties"] as RadPropertyGrid; 
                radPropertyGridProperties.ItemFormatting += radPropertyGridProperties_ItemFormatting;
                  radPropertyGridProperties.ItemFormatting += radPropertyGridProperties_ItemFormatting;
            }
        }

        private void radPropertyGridProperties_ItemFormatting(object sender, PropertyGridItemFormattingEventArgs e)
        {
            if (e.Item.Label=="CellFont")
            {
                e.Item.Label = "aaa";
            }
        }
Unplanned
Last Updated: 06 Nov 2018 09:14 by ADMIN
ADMIN
Created by: Dimitar
Comments: 0
Category: GridView
Type: Feature Request
0
This can be used for large amounts of data.

Check this - https://docs.telerik.com/devtools/document-processing/libraries/radpdfprocessing/formats-and-conversion/pdf/pdfstreamwriter/pdfstreamwriter
Completed
Last Updated: 23 Oct 2018 09:59 by Dimitar
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 0
Category: GridView
Type: Bug Report
1
To reproduce: please refer to the attached screenshot

        public RadForm1()
        {
            InitializeComponent();

            ThemeResolutionService.ApplicationThemeName = "Fluent";

            this.BackColor = Color.White;
            this.radGridView1.EnableGrouping = false;
        }

Workaround: this.radGridView1.TableElement.Margin = new Padding(0, 1, 0, 0);
Unplanned
Last Updated: 15 Oct 2018 10:53 by ADMIN
To reproduce: run the attached sample project and activate the editor for the cell. You will notice that the row's height is now adjusted and single line text is displayed. It seems that the issue occurs because of the set Font property of the grid.

Workaround:  
        private void RadGridView1_CellEditorInitialized(object sender, Telerik.WinControls.UI.GridViewCellEventArgs e)
        {
            e.Row.MinHeight = e.Row.Height + 3;
            RadTextBoxEditor tbEditor = e.ActiveEditor as RadTextBoxEditor;
            if (tbEditor != null)
            {
                tbEditor.Multiline = true;
            }
        }

        private void radGridView1_CellEndEdit(object sender, GridViewCellEventArgs e)
        {
            e.Row.MinHeight = 0; 
        }
Unplanned
Last Updated: 15 Oct 2018 10:35 by ADMIN
A possible workaround is to use the following KB and change how it is implemented to iterate the MasterTemplate.Rows collection instead of the ViewInfo.Rows collection

https://www.telerik.com/support/kb/winforms/gridview/details/add-check-all-in-the-header-cell-for-a-gridviewcheckboxcolumn
Completed
Last Updated: 11 Oct 2018 14:15 by Dimitar
To reproduce:
- Set IsSearchAsync to false.
- Search for something and press down arrow to navigate to the last found item.
- Press down again the selection is not moved to the first item.
 
Completed
Last Updated: 11 Oct 2018 14:14 by Dimitar
Use attached to reproduce.

Workaround:
private void RadGridView1_UserAddingRow(object sender, GridViewRowCancelEventArgs e)
{
    e.Cancel = true;
}
Completed
Last Updated: 11 Oct 2018 14:13 by Dimitar
Use attached to reproduce:
- Just search for something and you will notice that the waiting bar does not disappear. 

Workaround:
public RadForm1()
{
    InitializeComponent();

    
    radGridView1.MasterView.TableSearchRow.IsSearchAsync = false;
    radGridView1.MasterView.TableSearchRow.SearchProgressChanged += TableSearchRow_SearchProgressChanged;

}

private void TableSearchRow_SearchProgressChanged(object sender, SearchProgressChangedEventArgs e)
{
    var searchCell = radGridView1.TableElement.FindDescendant<GridSearchCellElement>();
    if (searchCell != null)
    {
        var waitingBar = searchCell.Children[1] as RadWaitingBarElement;
        waitingBar.StopWaiting();
        waitingBar.Visibility = Telerik.WinControls.ElementVisibility.Collapsed;
    }
}
Completed
Last Updated: 28 Sep 2018 11:29 by Dimitar
How to reproduce:
public partial class Form1 : Form
{
    private RadGridView grid = new RadGridView();

    public Form1()
    {
        InitializeComponent();

        Controls.Add(grid);
        grid.Dock = DockStyle.Fill;
        grid.DataSource = this.GetData();
    }

    private object GetData()
    {
        DataTable dataTable = new DataTable();
        dataTable.Columns.Add("Id", typeof(int));
        dataTable.Columns.Add("Name", typeof(string));
        dataTable.Columns.Add("Checked", typeof(bool));

        for (int i = 0; i < 200; i++)
        {
            dataTable.Rows.Add(i, "Name " + i, i % 2 == 0);
        }

        return dataTable;
    }

    protected override void OnLoad(EventArgs e)
    {
        base.OnLoad(e);

        grid.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill;

        GridViewCheckBoxColumn checkBoxColumn = (GridViewCheckBoxColumn)grid.Columns["Checked"];
        checkBoxColumn.EnableHeaderCheckBox = true;
        checkBoxColumn.SortOrder = RadSortOrder.Ascending;
    }
}

Workaround: 
public partial class Form1 : Form
{
    private RadGridView grid = new RadGridView();

    public Form1()
    {
        InitializeComponent();

        Controls.Add(grid);
        grid.Dock = DockStyle.Fill;
        grid.DataSource = this.GetData();

        grid.MouseDown += grid_MouseDown;
        grid.MouseUp += grid_MouseUp;
    }

    private object GetData()
    {
        DataTable dataTable = new DataTable();
        dataTable.Columns.Add("Id", typeof(int));
        dataTable.Columns.Add("Name", typeof(string));
        dataTable.Columns.Add("Checked", typeof(bool));

        for (int i = 0; i < 200; i++)
        {
            dataTable.Rows.Add(i, "Name " + i, i % 2 == 0);
        }

        return dataTable;
    }

    private void grid_MouseDown(object sender, MouseEventArgs e)
    {
        RadGridView grid = (RadGridView)sender;
        RadCheckBoxElement cell = grid.ElementTree.GetElementAtPoint(e.Location) as RadCheckBoxElement;
        if (cell != null && cell.Parent is GridCheckBoxHeaderCellElement)
        {
            sw = new Stopwatch();
            sw.Start();
            grid.BeginUpdate();
        }
    }

    Stopwatch sw;
    private void grid_MouseUp(object sender, MouseEventArgs e)
    {
        RadGridView grid = (RadGridView)sender;
        RadCheckBoxElement cell = grid.ElementTree.GetElementAtPoint(e.Location) as RadCheckBoxElement;
        if (cell != null && cell.Parent is GridCheckBoxHeaderCellElement)
        {
            grid.EndUpdate();
            sw.Stop();
            Console.WriteLine(sw.ElapsedMilliseconds);
        }
    }

    protected override void OnLoad(EventArgs e)
    {
        base.OnLoad(e);

        grid.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill;

        GridViewCheckBoxColumn checkBoxColumn = (GridViewCheckBoxColumn)grid.Columns["Checked"];
        checkBoxColumn.EnableHeaderCheckBox = true;
        checkBoxColumn.SortOrder = RadSortOrder.Ascending;
    }
}


Completed
Last Updated: 27 Sep 2018 06:56 by Dimitar
Use attached to reproduce.
- Edit random cell and press Enter.
- Check the CellValueChanged event handler, the changes variable is null.

This will work if you comment the OnShown method.

Workaround:
IEditableObject editbaleObject = radGridView1.CurrentRow.DataBoundItem as IEditableObject;
if (editbaleObject != null)
{
     editbaleObject.EndEdit();
}
Completed
Last Updated: 27 Sep 2018 06:56 by Dimitar
Use attached to reproduce.
- Check then try to uncheck the rows.

Workaround:
private void RadGridView1_CreateCell(object sender, GridViewCreateCellEventArgs e)
{
    if (e.CellType == typeof(GridCheckBoxHeaderCellElement))
    {
        e.CellElement = new MyHeaderCheckboxCellElement(e.Column, e.Row);
    }
}

class MyHeaderCheckboxCellElement : GridCheckBoxHeaderCellElement
{
    public MyHeaderCheckboxCellElement(GridViewColumn col, GridRowElement row) : base (col, row)
    { }
    protected override void checkbox_ToggleStateChanged(object sender, StateChangedEventArgs args)
    {
        base.checkbox_ToggleStateChanged(sender, args);
        var prop = this.ViewInfo.GetType().GetProperty("Version", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);
        int value = (int)prop.GetValue(this.ViewInfo);
        prop.SetValue(this.ViewInfo, --value);

    }
}
Completed
Last Updated: 27 Sep 2018 06:54 by Dimitar
Use attached to reproduce.
- Open the data filter dialog from the excel-like filtering on the date column.
- The date time format in the editor is not respected.
- Consider the default cell editor as well.  

Workaround:

private void RadGridView1_CreateCompositeFilterDialog(object sender, GridViewCreateCompositeFilterDialogEventArgs e)
{
    var dialog = e.Dialog as CompositeDataFilterForm;
    dialog.DataFilter.EditorInitialized -= DataFilter_EditorInitialized;
    dialog.DataFilter.EditorInitialized += DataFilter_EditorInitialized;
 
    dialog.DataFilter.NodeFormatting -= DataFilter_NodeFormatting;
    dialog.DataFilter.NodeFormatting += DataFilter_NodeFormatting;
}
 
private void DataFilter_NodeFormatting(object sender, TreeNodeFormattingEventArgs e)
{
    var criteriaNode = e.NodeElement as DataFilterCriteriaElement;
    if (criteriaNode != null)
    {
        var node = criteriaNode.Data as DataFilterCriteriaNode;
        if (node.DescriptorValue != null && node.PropertyName == "Date")
        {
            criteriaNode.ValueElement.Text = ((DateTime?)node.DescriptorValue).Value.ToString("MM/dd/yyyy");
        }
    }
}
 
private void DataFilter_EditorInitialized(object sender, TreeNodeEditorInitializedEventArgs e)
{
    var editor = e.Editor as TreeViewDateTimeEditor;
    if (editor != null)
    {
        var element = editor.EditorElement as BaseDateTimeEditorElement;
        element.Format = DateTimePickerFormat.Custom;
        element.CustomFormat = "dd/MM/yyyy";
    }
}
 
Completed
Last Updated: 27 Sep 2018 06:54 by Dimitar
To reproduce: setup self-reference hierarchy. Add a GridViewHyperlinkColumn and show the expander item in this column. Please refer to the attached screenshot. The hyperlink text overlaps with the expander.

Workaround: set the MasterTemplate.SelfReferenceExpanderColumn to a different column. 
Completed
Last Updated: 27 Sep 2018 06:53 by ADMIN
Created by: Svetlin
Comments: 4
Category: GridView
Type: Feature Request
10
A title or caption that can be positioned on the top or bottom of RadGridView that shows a text defined by developer.
Unplanned
Last Updated: 21 Sep 2018 08:40 by ADMIN
After populating the RadGridView, unbound in this example, I use RadGridView1.ClearSelection. This works when using some themes such as Crystal and Office2013, but not others, like Fluent. See attached..... believe me that the code is EXACTLY the same for each, just the application theme is difference. This should be an easy one to replicate.
Completed
Last Updated: 03 Sep 2018 07:46 by Dimitar
To reproduce:

public RadForm1()
{
    InitializeComponent();

    this.radGridView1.EnableFiltering = true;
    this.radGridView1.ShowHeaderCellButtons = true;

    this.radGridView1.FilterPopupRequired += radGridView1_FilterPopupRequired; 
}

private void radGridView1_FilterPopupRequired(object sender, Telerik.WinControls.UI.FilterPopupRequiredEventArgs e)
{
    e.FilterPopup.PopupOpening -= FilterPopup_PopupOpening; 
    e.FilterPopup.PopupOpening += FilterPopup_PopupOpening; 
}

private void FilterPopup_PopupOpening(object sender, CancelEventArgs args)
{
    args.Cancel = true;
}

Workaround: either set the ShowHeaderCellButtons property to false or closed the popup immediately after it is opened.

private void radGridView1_FilterPopupRequired(object sender, Telerik.WinControls.UI.FilterPopupRequiredEventArgs e)
{
    e.FilterPopup.PopupOpening -= FilterPopup_PopupOpening; 
    e.FilterPopup.PopupOpening += FilterPopup_PopupOpening; 
}

private void FilterPopup_PopupOpening(object sender, CancelEventArgs args)
{ 
    RadListFilterPopup popup = sender as RadListFilterPopup;
    popup.PopupOpened -= popup_PopupOpened;
    popup.PopupOpened += popup_PopupOpened;
}

private void popup_PopupOpened(object sender, EventArgs args)
{
    RadListFilterPopup popup = sender as RadListFilterPopup;
    popup.ClosePopup(RadPopupCloseReason.Mouse);
}

Completed
Last Updated: 31 Aug 2018 08:08 by Dimitar
To reproduce:
GridViewCheckBoxColumn chkCol = new GridViewCheckBoxColumn();

chkCol.HeaderText = "I have wrap text set yet I cannot see full column header text.";
chkCol.Width = 90;
chkCol.WrapText = true;
chkCol.EnableHeaderCheckBox = true;
chkCol.EditMode = EditMode.OnValueChange;
radGridView1.Columns.Add(chkCol);

Workaround:
private void RadGridView1_ViewCellFormatting(object sender, CellFormattingEventArgs e)
{
    var cell = e.CellElement as GridCheckBoxHeaderCellElement;
    if (cell != null)
    {
        cell.CheckBox.TextWrap = true;
    }
}