Completed
Last Updated: 23 Oct 2018 09:59 by Dimitar
ADMIN
Created by: Dess | Tech Support Engineer, Sr.
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);
Completed
Last Updated: 23 Oct 2018 09:58 by Dimitar
To reproduce: please refer to the attached gif file. Apply a conditional formatting rule for the current time's minute. Then, after a minute later, try to edit the already applied rule and change the minute value, you will notice that the color is cleared, but the new one is not applied.

Workaround: use the CellFormatting event https://docs.telerik.com/devtools/winforms/gridview/cells/formatting-cells
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: 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;
    }
}
Completed
Last Updated: 31 Aug 2018 05:54 by Dimitar
Use attached to reproduce!

Workaround:
remove the Begin\End update block.
Completed
Last Updated: 31 Aug 2018 05:53 by Dimitar
To reproduce:
 private void radButton1_Click(object sender, EventArgs e)
        {
            RadPrintDocument printDocument = new RadPrintDocument();
            printDocument.DefaultPageSettings.Landscape = true; 
            printDocument.DocumentName = "Example Case";

            GridPrintStyle style = new GridPrintStyle(this.radGridView1)
            {
                FitWidthMode = PrintFitWidthMode.FitPageWidth,
                PrintGrouping = false,
                PrintSummaries = false,
                PrintHeaderOnEachPage = true,
                PrintHiddenColumns = false,
            };
            
            TableViewDefinitionPrintRenderer renderer = new TableViewDefinitionPrintRenderer(this.radGridView1);
            renderer.PrintPages.Add(
                this.radGridView1.Columns[1],
                this.radGridView1.Columns[2],
                this.radGridView1.Columns[3],
                this.radGridView1.Columns[4],
                this.radGridView1.Columns[5],
                this.radGridView1.Columns[6]);
            style.PrintRenderer = renderer;
            this.radGridView1.PrintStyle = style;

            this.radGridView1.PrintCellFormatting += RadGridView1_PrintCellFormatting;
            radGridView1.Print(true, printDocument);     
        }

        private void RadGridView1_PrintCellFormatting(object sender, Telerik.WinControls.UI.PrintCellFormattingEventArgs e)
        {
        }

Workaround: use the PrintCellFormatting  of the TableViewDefinitionPrintRenderer 
Completed
Last Updated: 28 Aug 2018 14:48 by Dimitar
To reproduce: run the sample approach an follow the steps:

1. Filter the "Mask" column by entering " " in the filter cell. Press Enter. The grid is filtered as expected. 
2. Activate the editor again and press Backspace+Enter. You will notice that it is not possible to clear the applied filter.

Workaround: use GridViewTextBoxColumn 
Completed
Last Updated: 22 Aug 2018 06:24 by Dimitar
To reproduce:

 if (e.CellElement.ColumnInfo.HeaderText == "CategoryID")
{
     e.CellElement.DrawText = false;
}
else
{
      e.CellElement.ResetValue(LightVisualElement.DrawTextProperty, ValueResetFlags.Local);
}

Workaround:
 
e.CellElement.DrawText = true;
Completed
Last Updated: 17 Aug 2018 06:57 by ADMIN
ADMIN
Created by: Telerik Admin
Comments: 8
Category: GridView
Type: Bug Report
1
Hi,

We got an issue comparable to the one already described (see 245938), using the same demo project
1) I add LastDeliveryDateTimeLocal column
2) remove groups
3) click on "Start async notifications"
4) click on the filter icon next to "LastDeliveryDateTimeLocal" column name
5) uncheck some values (08/09/2016, 11/11/2016, 03/01/2017)
6) click Ok
=> NullReferenceException
Completed
Last Updated: 16 Aug 2018 07:35 by ADMIN
Steps to reproduce:
1. Add a grid to a form and fill it with some data
2. Add a button and in the click event:
   a. Assign a new GridPrintStyle instance to the PrintStyle property
   b. Subscribe for the PrintCellFormatting event of the grid
   c. Call the PrintPreview method of the grid
3. Add a break point in the event handler of the PrintCellFormatting
4. Start the app and click the button. You will see that the break point is never hit.
Completed
Last Updated: 02 Aug 2018 09:34 by ADMIN
1. Create a new project and add RadGridView.
2. Bind it and set the IsVisible property for some rows to false.
3. Run the project.
4. Scroll to bottom.
Completed
Last Updated: 01 Aug 2018 11:57 by Dimitar
Use attached to reproduce.

Workaround:
class MySpreadExportRenderer : SpreadExportRenderer
{
    public override void SetWorksheetColumnWidth(int columnIndex, double value, bool isCustom)
    {
        if (value > 2000)
        {
            value = 2000;
        }
        base.SetWorksheetColumnWidth(columnIndex, value, isCustom);
    }
}