Completed
Last Updated: 06 Mar 2018 11:26 by Dimitar
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 0
Category: GridView
Type: Bug Report
1

			
Unplanned
Last Updated: 02 Mar 2018 14:19 by ADMIN
To reproduce: run the attached sample project and press the "stream export" button. 

Workaround: use the GridViewSpreadExport https://docs.telerik.com/devtools/winforms/gridview/exporting-data/spread-export

        Dim spreadExporter As GridViewSpreadExport = New GridViewSpreadExport(RadGridView1)
        Dim exportRenderer As New SpreadExportRenderer()
        Dim fileName As String = "..\..\Export" & DateTime.Now.ToLongTimeString().Replace(":", "_") + ".xlsx"
        spreadExporter.RunExport(fileName, exportRenderer)
Completed
Last Updated: 28 Feb 2018 13:56 by ADMIN
Use attached to reproduce.
- Check the filter box
- Uncheck the header checkbox.
- The cells are still visible and you cannot click on the data check boxes.

 
Declined
Last Updated: 26 Feb 2018 17:39 by Mike
To reproduce:
Public Class RadForm1
    Public RadGridView1 As RadGridView

    Private Sub RadForm1_Load(sender As Object, e As EventArgs) Handles Me.Load
        CreateGrid()
        FormatGrid()
        SetDataSource()
    End Sub

    Private Sub CreateGrid()
        Try
            RadGridView1 = New RadGridView
            Me.Controls.Add(RadGridView1)
        Catch ex As Exception
            MessageBox.Show(Me, ex.Message)
        End Try
    End Sub
    Private Sub FormatGrid()

        Dim col As GridViewTextBoxColumn
        With RadGridView1
            col = New GridViewTextBoxColumn
            With col
                .FieldName = "FieldID"
                'NOTE: Comment out NullValue = "" to prevent the unhandled exception
                .NullValue = ""
            End With
            .Columns.Add(col)
        End With
    End Sub
    Private Sub SetDataSource()
        Dim table As DataTable = Nothing
        Dim row As DataRow = Nothing
        table = New DataTable("GridList")
        table.Columns.Add("FieldID", GetType(System.Guid))
        row = table.NewRow
        row("FieldID") = Guid.Empty
        table.Rows.Add(row)
        RadGridView1.DataSource = table
    End Sub
End Class

Workaround:
Comment this line 
NullValue = ""
Unplanned
Last Updated: 21 Feb 2018 13:08 by ADMIN
Please refer to the attached sample project. The ResizeColumnsProportionally.gif illustrates the correct behavior of columns resizing. However, if you make a certain column with fixed size, the columns resizing is not proportional any more. The ColumnsWidthNOTAdjustedProportionally.gif demonstrates better the wrong behavior.

Workaround:  handle the SizeChanged event and adjust the columns' width property programmatically in order to obtain the desired widths.
Completed
Last Updated: 16 Feb 2018 10:29 by ADMIN
Completed
Last Updated: 15 Feb 2018 08:26 by ADMIN
ADMIN
Created by: Hristo
Comments: 0
Category: GridView
Type: Feature Request
1
Until the new functionality becomes available you can use the workaround solution in the attached project.
Completed
Last Updated: 12 Feb 2018 14:57 by ADMIN
Excel does not support dates prior to 1/1/1900, however,  we could export such dates as simple strings: https://support.office.com/en-us/article/excel-specifications-and-limits-1672b34d-7043-467e-8e27-269d656771c3

How to reproduce:
 public partial class Form1 : RadForm
 {
     public Form1()
     {
         InitializeComponent();

         this.radGridView1.DataSource = this.GetData();
         this.radGridView1.AutoSizeColumnsMode = Telerik.WinControls.UI.GridViewAutoSizeColumnsMode.Fill;
     }

     private object GetData()
     {
         DataTable dt = new DataTable();
         dt.Columns.Add("Id", typeof(int));
         dt.Columns.Add("Name", typeof(string));
         dt.Columns.Add("Bool", typeof(bool));
         dt.Columns.Add("Date", typeof(DateTime));

         DateTime date = new DateTime(1850, 1, 1);
         for (int i = 0; i < 100; i++)
         {
             dt.Rows.Add(i, "Name " + i, i % 2 == 0, date.AddYears(i));
         }

         return dt;
     }
     
     FieldInfo fi;
     private void radButton1_Click(object sender, EventArgs e)
     {
         //Old Export using the ExcelML format
         this.fi = typeof(Telerik.WinControls.UI.Export.ExcelML.CellElement).GetField("_dataElement", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);
         ExportToExcelML exporter = new ExportToExcelML(this.radGridView1);
         string fileName = @"..\..\data.xls";
         exporter.RunExport(fileName);

         //New export utilizing the SpreadProcessing libraries
         GridViewSpreadExport spreadExporter = new GridViewSpreadExport(this.radGridView1);

         SpreadExportRenderer exportRenderer = new SpreadExportRenderer();
         spreadExporter.RunExport(@"..\..\data.xlsx", exportRenderer);
     }
 }


Workaround: handle the CellFormatting event
public partial class Form1 : RadForm
{
    public Form1()
    {
        InitializeComponent();

        this.radGridView1.DataSource = this.GetData();
        this.radGridView1.AutoSizeColumnsMode = Telerik.WinControls.UI.GridViewAutoSizeColumnsMode.Fill;
    }

    private object GetData()
    {
        DataTable dt = new DataTable();
        dt.Columns.Add("Id", typeof(int));
        dt.Columns.Add("Name", typeof(string));
        dt.Columns.Add("Bool", typeof(bool));
        dt.Columns.Add("Date", typeof(DateTime));

        DateTime date = new DateTime(1850, 1, 1);
        for (int i = 0; i < 100; i++)
        {
            dt.Rows.Add(i, "Name " + i, i % 2 == 0, date.AddYears(i));
        }

        return dt;
    }
    
    FieldInfo fi;
    private void radButton1_Click(object sender, EventArgs e)
    {
        //Old Export using the ExcelML format
        this.fi = typeof(Telerik.WinControls.UI.Export.ExcelML.CellElement).GetField("_dataElement", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);
        ExportToExcelML exporter = new ExportToExcelML(this.radGridView1);
        exporter.ExcelCellFormatting += Exporter_ExcelCellFormatting;
        string fileName = @"..\..\data.xls";
        exporter.RunExport(fileName);

        //New export utilizing the SpreadProcessing libraries
        GridViewSpreadExport spreadExporter = new GridViewSpreadExport(this.radGridView1);
         spreadExporter.CellFormatting += SpreadExporter_CellFormatting;

        SpreadExportRenderer exportRenderer = new SpreadExportRenderer();
        spreadExporter.RunExport(@"..\..\data.xlsx", exportRenderer);
    }

    private void SpreadExporter_CellFormatting(object sender, Telerik.WinControls.Export.CellFormattingEventArgs e)
    {
        if (e.GridRowIndex >= 1 && e.GridCellInfo.ColumnInfo is GridViewDateTimeColumn && ((DateTime)e.GridCellInfo.Value).Year < 1900)
        {
            Telerik.Windows.Documents.Spreadsheet.Model.CellSelection cell = e.CellSelection as Telerik.Windows.Documents.Spreadsheet.Model.CellSelection;
            cell.SetValue(e.GridCellInfo.Value.ToString());
        }
    }

    private void Exporter_ExcelCellFormatting(object sender, Telerik.WinControls.UI.Export.ExcelML.ExcelCellFormattingEventArgs e)
    {
        if (e.GridRowIndex > -1 && e.GridCellInfo.ColumnInfo is GridViewDateTimeColumn && ((DateTime)e.GridCellInfo.Value).Year < 1900)
        {
            DataElement data = new DataElement();
            data.DataItem = e.GridCellInfo.Value.ToString();
            this.fi.SetValue(e.ExcelCellElement, data);
        }
    }
}

Completed
Last Updated: 12 Feb 2018 09:12 by Don
Workaround: handle the GridViewPdfExport.CellFormatting event and apply the column`s format string

Public Class Form1
    Sub New()

        InitializeComponent()

        Me.RadGridView1.DataSource = Me.GetData()
        Me.RadGridView1.AutoSizeColumnsMode = Telerik.WinControls.UI.GridViewAutoSizeColumnsMode.Fill

        Dim decimalColumn = DirectCast(Me.RadGridView1.Columns("Money"), GridViewDecimalColumn)
        decimalColumn.DecimalPlaces = 0
        decimalColumn.FormatString = "{0:C0}"

        Dim dateTimeColumn = DirectCast(Me.RadGridView1.Columns("Date"), GridViewDateTimeColumn)
        dateTimeColumn.FormatString = "{0:D}"

    End Sub

    Private Function GetData() As Object
        Dim dataTable As New DataTable()
        dataTable.Columns.Add("Id", GetType(Integer))
        dataTable.Columns.Add("Name", GetType(String))
        dataTable.Columns.Add("Money", GetType(Decimal))
        dataTable.Columns.Add("Date", GetType(DateTime))

        For i As Integer = 0 To 999
            dataTable.Rows.Add(i, "Name " & i, i * 10, DateTime.Now.AddDays(i))
        Next

        Return dataTable
    End Function

    Private Sub RadButton1_Click(sender As Object, e As EventArgs) Handles RadButton1.Click
        Dim pdfExporter = New GridViewPdfExport(Me.RadGridView1)
        AddHandler pdfExporter.CellFormatting, AddressOf pdfExporter_CellFormatting
        Dim renderer = New PdfExportRenderer()
        Dim fileName As String = "..\..\exported-grid.pdf"

        pdfExporter.RunExport(fileName, renderer)
    End Sub

    Private Sub pdfExporter_CellFormatting(sender As Object, e As PdfExportCellFormattingEventArgs)
        If e.RowIndex > -1 Then
            e.CellElement.Text = TryCast(RadDataConverter.Instance.Format(e.Row.Cells(e.ColumnIndex).Value, GetType(String), e.Column), String)
        End If
    End Sub

End Class
Completed
Last Updated: 06 Feb 2018 07:05 by ADMIN
To reproduce: if you pin a calculator or a hyperlink column you will notice that the cells belonging to these columns remain white. However, the cells from other column types  have a light blue/gray fill color for pinned state. 

Workaround: 
private void RadGridView1_CellFormatting(object sender, CellFormattingEventArgs e)
{
    if (e.Column.IsPinned)
    {
        e.CellElement.BackColor = Color.FromArgb(235, 244, 252);
    }
    else
    {
        e.CellElement.ResetValue(LightVisualElement.BackColorProperty, ValueResetFlags.Local);
    }
}
Declined
Last Updated: 06 Feb 2018 06:47 by ADMIN
To reproduce: please refer to the attached gif file and sample project.

Workaround: when you set the DrawFill property to true, specify the BackColor to the desired one and reset for the rest of the cells.

private void radGridView1_CellFormatting(object sender, Telerik.WinControls.UI.CellFormattingEventArgs e)
{
    if (e.Column.Name == "ProductName" && e.Row is GridViewDataRowInfo)
    {
        if (e.CellElement.Value.ToString().Contains("C"))
        {
            e.CellElement.DrawFill = true;
            e.CellElement.BackColor = Color.Yellow;
            e.CellElement.GradientStyle = GradientStyles.Solid;
            e.CellElement.ForeColor = Color.OliveDrab;
        }
        else
        { 
            e.CellElement.ResetValue(LightVisualElement.DrawFillProperty, ValueResetFlags.Local);
            e.CellElement.ResetValue(LightVisualElement.GradientStyleProperty, ValueResetFlags.Local);
            e.CellElement.ResetValue(LightVisualElement.ForeColorProperty, ValueResetFlags.Local);  
            e.CellElement.ResetValue(LightVisualElement.BackColorProperty, ValueResetFlags.Local);  
        }
    }
    else
    { 
        e.CellElement.ResetValue(LightVisualElement.DrawFillProperty, ValueResetFlags.Local);
        e.CellElement.ResetValue(LightVisualElement.GradientStyleProperty, ValueResetFlags.Local);
        e.CellElement.ResetValue(LightVisualElement.ForeColorProperty, ValueResetFlags.Local);    
        e.CellElement.ResetValue(LightVisualElement.BackColorProperty, ValueResetFlags.Local);  
    }
}
Declined
Last Updated: 06 Feb 2018 06:40 by ADMIN
To reproduce:
- Add a RadGridView and a button to a blank form.
- Subscribe to CellValidating event from the grid and set the cancel property of the CellValidatingEventArgs to true upon some condition.
- Add click event handler for the button and print a message in it.
- Start the application and enter some invalid data in the grid cell, then click the button.
- The code from the button's event handler is executed.

Workaround use a flag to determine when to execute the corresponding button code:
bool validating = false;

void radGridView1_CellValidating(object sender, Telerik.WinControls.UI.CellValidatingEventArgs e)
{
    if (e.Value.ToString().Length < 5)
    {
        e.Cancel = true;
        validating = true;
        e.Row.ErrorText = "Validation error!";
    }
    else
    {
        validating = false;
    }
}

private void radButton1_Click(object sender, EventArgs e)
{
    if (!validating)
    {
        Debug.WriteLine("Executed");
    }
}


Completed
Last Updated: 05 Feb 2018 10:40 by ADMIN
To reproduce: please refer to the attached screenshot.

Workaround: add the FilterDescriptor programmatically: https://docs.telerik.com/devtools/winforms/gridview/filtering/setting-filters-programmatically-(simple-descriptors)
Completed
Last Updated: 05 Feb 2018 09:39 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 0
Category: GridView
Type: Bug Report
2
To reproduce:

            this.radGridView1.Columns.Add("FIRST CELL ID A");

            this.radGridView1.Rows.Add("405-55-214-41763");
            this.radGridView1.Rows.Add("405-55-214-46682");
            this.radGridView1.Rows.Add("405-55-214-46682");

            this.radGridView1.AutoSizeColumnsMode = Telerik.WinControls.UI.GridViewAutoSizeColumnsMode.Fill;
            this.radGridView1.MultiSelect = true;
            this.radGridView1.SelectionMode = Telerik.WinControls.UI.GridViewSelectionMode.CellSelect;

Please refer to the attached gif file illustrating better the text moving. 

Workaround: 
        private void radGridView1_CellFormatting(object sender, Telerik.WinControls.UI.CellFormattingEventArgs e)
        {
            e.CellElement.BorderBottomWidth = 2;
            e.CellElement.BorderRightWidth = 2;
            e.CellElement.BorderTopWidth = 2;
            e.CellElement.BorderLeftWidth = 2;
        }
Unplanned
Last Updated: 31 Jan 2018 08:29 by ADMIN
To reproduce:
 this.radGridView1.SummaryRowsBottom.Insert(0, summaryRowItem2);
 this.radGridView1.SummaryRowsBottom.Move(2, 0);

Workaround:
Remove all items and add them back with a spesific order. 
Completed
Last Updated: 25 Jan 2018 16:20 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 0
Category: GridView
Type: Bug Report
1
Bind the grid to the following DataTable:

            DataTable dt = new DataTable();     
            dt.Columns.Add("X.Y"); 
            dt.Columns.Add("X");   
            
            dt.Rows.Add("Data X.Y", "Data X");

            this.radGridView1.DataSource = dt;

You will notice that the second column "X" is missing.

Note: if you change the order of adding the columns, both columns will be added.
Unplanned
Last Updated: 05 Jan 2018 14:10 by ADMIN
The new mode should allow copying of single cells even when having the SelectionMode set to FullRowSelect. The attached project features a possible workaround.