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
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.

Declined
Last Updated: 06 Jun 2016 14:04 by ADMIN
Created by: Jared
Comments: 3
Category: GridView
Type: Feature Request
1
Add an ExportToXlsx option into the native RadGridView exporting.  It has been done for WPF (http://docs.telerik.com/devtools/wpf/controls/radgridview/export/export-xlsx) - why not WinForms.  This would avoid the pain of having to implement the export using RadSpreadProcessing.
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: 06 Jun 2016 08:05 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 0
Category: GridView
Type: Bug Report
3
To reproduce: follow the steps defined in the following help article: http://docs.telerik.com/devtools/winforms/gridview/hierarchical-grid/tutorial-binding-to-hierarchical-data
Then, add a nested template in the second level. After closing the GridViewTemplate Collection Editor, you will notice that the template is not saved.

http://screencast.com/t/7VDYiopuUHn

Workaround: setup the hierarchy programmatically :  http://docs.telerik.com/devtools/winforms/gridview/hierarchical-grid/binding-to-hierarchical-data-programmatically
Completed
Last Updated: 06 Jun 2016 07:22 by ADMIN
WORKAROUND:
1. Create a custom GridTableElement and override the ProcessColumnEvent method.
2. Create a custom TableViewDefinition and override the CreateViewUIElement to return the custom table element.
3. Assign the custom view definition to the grid's ViewDefinition property

public class CustomGridTableElement : GridTableElement
{
    protected override GridViewEventResult ProcessColumnEvent(GridViewColumn column, GridViewEvent eventData)
    {
        if (eventData.Info.Id == KnownEvents.PropertyChanged)
        {
            RadPropertyChangedEventArgs args = eventData.Arguments[0] as RadPropertyChangedEventArgs;

            if (args.Property == GridViewColumn.IsVisibleProperty)
            {
                ViewElement.UpdateRowsWhenColumnsChanged();

                if (this.GridViewElement.AutoSizeRows)
                {
                    foreach (GridViewRowInfo row in this.ViewTemplate.Rows)
                    {
                        row.Height = -1;
                    }

                    this.UpdateLayout();
                    this.RowScroller.UpdateScrollRange();
                }

                return null;
            }
        }

        return base.ProcessColumnEvent(column, eventData);
    }

    protected override Type ThemeEffectiveType
    {
        get { return typeof(GridTableElement); }
    }
}


public class CustomTableViewDefinition : TableViewDefinition
{
    public override IRowView CreateViewUIElement(GridViewInfo viewInfo)
    {
        return new CustomGridTableElement();
    }
}


this.radGridView1.ViewDefinition = new CustomTableViewDefinition();

Completed
Last Updated: 03 Jun 2016 10:14 by ADMIN
One should be able to set the maximum row height when the rows are auto sized and the visual styles are exported.
 
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: 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: 31 May 2016 05:56 by ADMIN
To reproduce: make sure only the first row is selected then Shift select row 3.
DataTable dt = new DataTable();

dt.Columns.Add("Value", typeof(int));
dt.Columns.Add("Date", typeof(DateTime));
dt.Columns.Add("Description", typeof(string));

for (int index = 0; index < 15; index++)
{
    dt.Rows.Add(new object[] { index % 5, DateTime.Now.AddSeconds(10), "Index = " + index });
}

radGridView1.DataSource = dt;
radGridView1.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill;
radGridView1.MultiSelect = true;

foreach (GridViewColumn col in this.radGridView1.Columns)
{
    ConditionalFormattingObject obj = new ConditionalFormattingObject("Value",
        ConditionTypes.Equal,
        col.Index.ToString(),
        "",
        true);
    obj.RowBackColor = Color.SkyBlue;
    obj.RowForeColor = Color.Red;
    obj.TextAlignment = ContentAlignment.MiddleRight;
    obj.ApplyOnSelectedRows = false;
    this.radGridView1.Columns[0].ConditionalFormattingObjectList.Add(obj);
}

Workaround: use the CellFormatting event to apply the desired formatting by using the API for overriding theme settings: 

http://docs.telerik.com/devtools/winforms/gridview/cells/formatting-cells
http://docs.telerik.com/devtools/winforms/telerik-presentation-framework/override-theme-settings-at-run-time
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: 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: 25 May 2016 13:20 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 4
Category: GridView
Type: Bug Report
0
Please find attached a sample project.

1. Select the new row and activate te editor.
2. Do not enter any value and click outside the new row. The exception is thrown.

Workaround: bind directly to the query result:
this.radGridView1.DataSource = (from p in context.Customers select p).ToList();
Completed
Last Updated: 19 May 2016 12:31 by ADMIN
Workaround: instead of using the default alternating row color for the mentioned themes, use the override theme setting in the CellFormatting event: http://www.telerik.com/help/winforms/tpf-override-theme-settings-at-run-time.html
private void radGridView1_CellFormatting(object sender, CellFormattingEventArgs e)
{
    if (e.Row is GridViewDataRowInfo)
    {
        if (e.RowIndex % 2 == 0)
        {
            e.CellElement.SetThemeValueOverride(LightVisualElement.BackColorProperty, Color.Red, "");
            e.CellElement.SetThemeValueOverride(LightVisualElement.DrawFillProperty, true, "");
            e.CellElement.SetThemeValueOverride(LightVisualElement.GradientStyleProperty, GradientStyles.Solid, "");
        }
        else
        {
            e.CellElement.ResetThemeValueOverride(LightVisualElement.BackColorProperty, "");
            e.CellElement.ResetThemeValueOverride(LightVisualElement.DrawFillProperty, "");
            e.CellElement.ResetThemeValueOverride(LightVisualElement.GradientStyleProperty, ""); 
        }
    }
}
Completed
Last Updated: 11 May 2016 14:12 by ADMIN
Currently the Paging functionality does not support server side operations. It should be extended to support them, e.g. with EntityFramework and Telerik Data Access
Unplanned
Last Updated: 10 May 2016 09:34 by ADMIN
To reproduce:
Search a specific text by focusing the search box programmatically and the using the SendKeys method:
private void radButton1_Click(object sender, EventArgs e)
{
    GridSearchCellElement searchCell = radGridView1.TableElement.GetCellElement(radGridView1.MasterView.TableSearchRow, null) as GridSearchCellElement;
    if (searchCell != null)
    {
        searchCell.SearchTextBox.Focus();
        searchCell.SearchTextBox.Text = string.Empty;
        SendKeys.Send("t");
        SendKeys.Send("e");
        SendKeys.Send("s");
        SendKeys.Send("t");
    }
}

Workaround: 
Repeat the search in the SearchProgressChanged event:

radGridView1.MasterView.TableSearchRow.SearchProgressChanged += TextationSearchProgressHandler;

protected void TextationSearchProgressHandler(object sender, SearchProgressChangedEventArgs e)
{
    if (e.SearchFinished && null != radGridView1.TableElement)
    {
        GridSearchCellElement searchCell = radGridView1.TableElement.GetCellElement(radGridView1.MasterView.TableSearchRow, null) as GridSearchCellElement;
        if (searchCell != null
             && searchCell.SearchTextBox.TextBoxItem.Text != e.SearchCriteria)
        {
            radGridView1.MasterView.TableSearchRow.Search(searchCell.SearchTextBox.TextBoxItem.Text);
        }
    }
}
Completed
Last Updated: 06 May 2016 14:06 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 0
Category: GridView
Type: Bug Report
0
To reproduce:

public Form1() 
{
    InitializeComponent();

    DataTable dt = new DataTable();
    for (int i = 0; i < 5; i++)
    {
        dt.Columns.Add("Col"+i);
    }
    for (int i = 0; i < 2000; 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;
}

private void radButton1_Click(object sender, EventArgs e)
{
    RadPrintPreviewDialog dialog = new RadPrintPreviewDialog();
    dialog.Document = this.radPrintDocument1;
    dialog.ShowDialog();
}

Workaround: this.radGridView1.AutoSizeRows = true;
Completed
Last Updated: 06 May 2016 14:04 by ADMIN
To reproduce: use the following code snippet. You will notice that the "Accounting Manager" group is missing.

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

    this.radGridView1.DataSource = this.customersBindingSource;

    ColumnGroupsViewDefinition view = 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;

    GroupDescriptor descriptor = new GroupDescriptor();
    descriptor.GroupNames.Add("ContactTitle", ListSortDirection.Ascending);
    this.radGridView1.GroupDescriptors.Add(descriptor);

    this.radGridView1.Groups[0].GroupRow.IsPinned = true;
}
Unplanned
Last Updated: 06 May 2016 06:15 by ADMIN
Please refer to the attached screenshot and sample video.

Workaround:
public class CustomGrid : RadGridView
{
    public override string ThemeClassName  
    { 
        get 
        { 
            return typeof(RadGridView).FullName;  
        }
    }

    protected override void OnKeyPress(KeyPressEventArgs e)
    {
        this.BeginEdit();
        if (this.GridViewElement.ActiveEditor is RadDropDownListEditor)
        {
            string symbol = e.KeyChar.ToString();
            RadDropDownListEditor editor = this.GridViewElement.ActiveEditor as RadDropDownListEditor;
            RadDropDownListEditorElement element = editor.EditorElement as RadDropDownListEditorElement;

            if ((element.AutoCompleteMode & AutoCompleteMode.Suggest) == AutoCompleteMode.Suggest)
            {
                element.EditableElementText += symbol;
                element.EditableElement.SelectionStart = 1;
                element.EditableElement.SelectionLength = 0;
            }
        }
        base.OnKeyPress(e);
    }
}
Unplanned
Last Updated: 06 May 2016 06:13 by ADMIN
To reproduce:

private void Form1_Load(object sender, EventArgs e)
{
    this.productsTableAdapter.Fill(this.nwindDataSet.Products);
    this.categoriesTableAdapter.Fill(this.nwindDataSet.Categories);
    
    radGridView1.AllowSearchRow = true;
    radGridView1.DataSource = nwindDataSet.Categories;
    radGridView1.MasterTemplate.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill;
    radGridView1.UseScrollbarsInHierarchy = true;

    GridViewTemplate template = new GridViewTemplate();
    template.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill;
    template.DataSource = nwindDataSet.Products;
    radGridView1.MasterTemplate.Templates.Add(template);

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

Workaround:
private void radGridView1_CurrentRowChanged(object sender, CurrentRowChangedEventArgs e)
{
    if (this.radGridView1.CurrentRow != null)
    {
        if (this.radGridView1.CurrentRow.HierarchyLevel > 0)
        {
            tableElement.ScrollToRow((GridViewHierarchyRowInfo)(this.radGridView1.CurrentRow).Parent);
             this.radGridView1.TableElement.EnsureRowVisible((GridViewHierarchyRowInfo)(this.radGridView1.CurrentRow).Parent);
            tableElement.ScrollToRow(this.radGridView1.CurrentRow);
            tableElement.EnsureRowVisible(this.radGridView1.CurrentRow);
        }
    }
}