Unplanned
Last Updated: 19 Jun 2017 11:20 by ADMIN
To reproduce: please refer to the attached gif file.
1. Run the attached sample project.
2. Toggle the checkbox and scroll to a specific row.
3. Click the button to hide a column. You will notice that the vertical scrollbar changes its position. If the AutoSizeRows property is set to false, the scrollbar keeps its position.

Workaround:
private void radToggleButton1_ToggleStateChanged(object sender, Telerik.WinControls.UI.StateChangedEventArgs args)
{
    int scrollBarValue = this.radGridView1.TableElement.VScrollBar.Value;
    bool visible = true;
    if (args.ToggleState == Telerik.WinControls.Enumerations.ToggleState.On)
    {
        visible = false;
    }
    this.radGridView1.MasterTemplate.BeginUpdate();
    for (int i = 1; i < this.radGridView1.Columns.Count; i += 2)
    {
        this.radGridView1.Columns[i].IsVisible = visible;
    }
    this.radGridView1.MasterTemplate.EndUpdate();
    this.radGridView1.TableElement.VScrollBar.Value = scrollBarValue;
}

Unplanned
Last Updated: 19 Jun 2017 11:07 by ADMIN
Workaround:

 private void RadForm1_Load(object sender, EventArgs e)
 {
     this.categoriesTableAdapter.Fill(this.nwindDataSet.Categories);
     this.productsTableAdapter.Fill(this.nwindDataSet.Products);


     radGridView1.AutoGenerateHierarchy = true;
     radGridView1.DataSource = this.nwindDataSet;
     radGridView1.DataMember = "Categories";

     radGridView1.Rows[0].IsExpanded = !radGridView1.Rows[0].IsExpanded;
     radGridView1.Rows[0].IsExpanded = !radGridView1.Rows[0].IsExpanded;
 }
  
 Image expandedSign;
 Image collapsedSign;
 private void radGridView1_ViewCellFormatting(object sender, CellFormattingEventArgs e)
 {
     GridGroupExpanderCellElement expanderCell = e.CellElement as GridGroupExpanderCellElement;
     if (expanderCell != null)
     {
         if (expandedSign == null && expanderCell.Expander.SignImage != null && e.Row.IsExpanded == false)
         {
             expandedSign = expanderCell.Expander.SignImage.Clone() as Image;

         }
         if (collapsedSign == null && expanderCell.Expander.SignImage != null && e.Row.IsExpanded == true)
         {
             collapsedSign = expanderCell.Expander.SignImage.Clone() as Image;

         }
         if (expandedSign != null && collapsedSign != null)
         {
             expanderCell.Expander.SignImage = null;
         }
         if (e.Row.IsExpanded)
         {
             expanderCell.Expander.Image = collapsedSign;
         }
         else
         {
             expanderCell.Expander.Image = expandedSign;
         }

         expanderCell.Expander.ImageLayout = ImageLayout.None;
         expanderCell.Expander.DrawImage = true;
         expanderCell.Expander.ImageAlignment = ContentAlignment.TopLeft;

     }
 }
Unplanned
Last Updated: 19 Jun 2017 10:57 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 0
Category: GridView
Type: Bug Report
1
Please refer to the attached sample project and follow the steps in the gif file.

1. Open two MDI child forms.
2. Activate the first form and right click on the grid in order to show the context menu and add a shortcut to the menu item. Press Ctrl+N in order to add some new rows to the first grid.
3. Activate the second form and right click on the grid in order to show the context menu and add a shortcut to the menu item. Press Ctrl+N in order to add some new rows to the second grid. However, you will notice that the first several shortcuts combinations are executed for the first grid and then for the active second grid.

Workaround:  clear the shortcut when the form is deactivated:
this.Deactivate += GridForm_Deactivate;

private void GridForm_Deactivate(object sender, EventArgs e)
{
    item.Shortcuts.Clear();
}

private void GridForm_Activated(object sender, EventArgs e)
{
    this.ActiveControl = this.radGridView1;
}
RadMenuItem item = new RadMenuItem();
private void radGridView1_ContextMenuOpening(object sender, Telerik.WinControls.UI.ContextMenuOpeningEventArgs e)
{

    item.Text = "insert row";
    item.Shortcuts.Add(new RadShortcut(Keys.Control, Keys.N));
    item.Click += item_Click;
    e.ContextMenu.Items.Add(item);
}
Unplanned
Last Updated: 19 Jun 2017 10:45 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 0
Category: GridView
Type: Bug Report
1
To reproduce: please refer to the attached sample project and follow the described steps in the .doc file located in the zip. 

Workaround:

        protected override void OnActivated(EventArgs e)
        {
            base.OnActivated(e);
            this.ActiveControl = this.gvDetails;
        }

       private void gvDetails_LostFocus(object sender, EventArgs e)
        { 
            ((ComponentBehavior)gvDetails.Behavior).GetType().GetProperties(BindingFlags.NonPublic | BindingFlags.Instance);
            PropertyInfo barProperty = ((ComponentBehavior)gvDetails.Behavior).GetType().GetProperty("ScreenPresenter", 
                BindingFlags.NonPublic | BindingFlags.Instance);
            Form screenTip = barProperty.GetValue(((ComponentBehavior)gvDetails.Behavior), null) as Form;
                    
            screenTip.Hide();
        }
Unplanned
Last Updated: 19 Jun 2017 10:22 by ADMIN
To reproduce: run the attached sample project and you will notice that the top border is missing as it is illustrated in the screenshot. 

Workaround:  set the RadGridView.AutoSizeRows property to false.
Unplanned
Last Updated: 15 Jun 2017 14:04 by ADMIN
Steps to reproduce:
1. Add RadGridView and populate with data 
2. Show the context menu many times. Sometimes the popup is not shown correctly.
If you click again, the popup is visible correctly.

Workaround: 
Set the AnimationEnabled property to false or the AnimationType property to None. Here is the code snippet how can be achieve it: 

//Set the AnimationEnabled to false
void radGridView1_ContextMenuOpening(object sender, Telerik.WinControls.UI.ContextMenuOpeningEventArgs e)
{
    RadDropDownMenu contextMenu = e.ContextMenu as RadDropDownMenu;
    contextMenu.AnimationEnabled = false;
}
 
//Set the AnimationType to None
void radGridView1_ContextMenuOpening(object sender, Telerik.WinControls.UI.ContextMenuOpeningEventArgs e)
{
    RadDropDownMenu contextMenu = e.ContextMenu as RadDropDownMenu;
    contextMenu.AnimationType = PopupAnimationTypes.None;
}
Unplanned
Last Updated: 05 Apr 2017 14:22 by ADMIN
To reproduce:
public RadForm1()
{
    InitializeComponent();
    radGridView1.DataSource = GetTable();
    GridViewSummaryItem summaryItem = new GridViewSummaryItem();
    summaryItem.Name = "Name";
    summaryItem.Aggregate = GridAggregateFunction.Count;
    GridViewSummaryRowItem summaryRowItem = new GridViewSummaryRowItem();
    summaryRowItem.Add(summaryItem);
    this.radGridView1.SummaryRowsBottom.Add(summaryRowItem);

    radGridView1.ViewCellFormatting += RadGridView1_ViewCellFormatting;
}

private void RadGridView1_ViewCellFormatting(object sender, CellFormattingEventArgs e)
{
    if (e.CellElement is GridSummaryCellElement)
    {
        e.CellElement.DrawFill = true;
        e.CellElement.GradientStyle = Telerik.WinControls.GradientStyles.Solid;
        e.CellElement.BackColor = Color.Red;

    }
    else
    {
        e.CellElement.ResetValue(LightVisualElement.BackColorProperty, Telerik.WinControls.ValueResetFlags.Local);
        e.CellElement.ResetValue(LightVisualElement.GradientStyleProperty, Telerik.WinControls.ValueResetFlags.Local);
        e.CellElement.ResetValue(LightVisualElement.DrawFillProperty, Telerik.WinControls.ValueResetFlags.Local);
    }
}

protected override void OnLoad(EventArgs e)
{
    base.OnLoad(e);
    radGridView1.MasterView.SummaryRows[0].PinPosition = PinnedRowPosition.Bottom;
}

static DataTable GetTable()
{

    DataTable table = new DataTable();
    table.Columns.Add("Dosage", typeof(int));
    table.Columns.Add("Drug", typeof(string));
    table.Columns.Add("Name", typeof(string));
    table.Columns.Add("Date", typeof(DateTime));

    for (int i = 0; i < 5; i++)
    {


        table.Rows.Add(25, "Indocin", "David", DateTime.Now);
        table.Rows.Add(50, "Enebrel", "Sam", DateTime.Now);
        table.Rows.Add(10, "Hydralazine", "Christoff", DateTime.Now);
        table.Rows.Add(21, "Combivent", "Janet", DateTime.Now);
        table.Rows.Add(100, "Dilantin", "Melanie", DateTime.Now);
    }
    return table;
}
private void radButton1_Click(object sender, EventArgs e)
{

    radGridView1.SaveLayout("test.xml");
}

private void radButton2_Click(object sender, EventArgs e)
{
    radGridView1.SummaryRowsBottom.Clear();
    radGridView1.SummaryRowsTop.Clear();
    radGridView1.LoadLayout("test.xml");
}
Unplanned
Last Updated: 06 Feb 2017 09:56 by ADMIN
The problematic themes are:
Aqua
HighContrastBlack
VisualStudio2012Dark
VisualStudio2012Light
Windows8

How to reproduce:
private void RadForm1_Load(object sender, EventArgs e)
{
    var theme = new Windows8Theme();
    ThemeResolutionService.ApplicationThemeName = "Windows8";

    GridViewTextBoxColumn textBoxColumn = new GridViewTextBoxColumn();
    textBoxColumn.Name = "Test";
    this.radGridView1.Columns.Add(textBoxColumn);

    
    for (int i = 0; i < 100; i++)
    {
        this.radGridView1.Rows.AddNew();
    }
}


Workaround:
private void RadForm1_Load(object sender, EventArgs e)
{
    var theme = new Windows8Theme();
    ThemeResolutionService.ApplicationThemeName = "Windows8";

    GridViewTextBoxColumn textBoxColumn = new GridViewTextBoxColumn();
    textBoxColumn.Name = "Test";
    this.radGridView1.Columns.Add(textBoxColumn);

    this.radGridView1.BeginUpdate();
    for (int i = 0; i < 100; i++)
    {
        this.radGridView1.Rows.AddNew();
    }

    this.radGridView1.EndUpdate();
    int lastRow = this.radGridView1.Rows.Count - 1;
    this.radGridView1.Rows[lastRow].IsCurrent = true;
}
Unplanned
Last Updated: 06 Feb 2017 09:54 by ADMIN
Use the attached project to reproduce.

Workaround:
Set the MaxWidth/MinWidth of the column manually.
Unplanned
Last Updated: 06 Feb 2017 09:52 by ADMIN
To reproduce use the attached project. 

Workaround:
Private Sub gvData_UserAddedRow(sender As Object, e As Telerik.WinControls.UI.GridViewRowEventArgs) Handles gvData.UserAddedRow
    Dim pi = GetType(GridViewNewRowInfo).GetProperty("MoveToLastRow", Reflection.BindingFlags.Instance Or Reflection.BindingFlags.NonPublic)
    pi.SetValue(Me.gvData.MasterView.TableAddNewRow, True, Nothing)
End Sub
Unplanned
Last Updated: 06 Feb 2017 09:50 by ADMIN
Consider the case where there are many child views and you want to export only the ones that actually contain data. 
Currently, you can either export only one view or all. 

One should be able to pass all the views in the ChildViewExporting event.
Unplanned
Last Updated: 12 Jan 2017 09:17 by ADMIN
To reproduce: use the following code snippet and have a look at the attached gif file.
Steps:
1.Populate RadGridView with data and enable Excel-like filtering.
2.Click on a column filter icon and type in the Search textbox so more than two results appear. Then, click OK
2.The grid returns correct result.
3. Click on the previous column filter icon and navigate to Available Filters -> Contains
4. Evaluate the initial pop up dialog. You will notice that the 3rd filter descriptor is not displayed in the form.
5. Then, click OK
6. A message that says: "The composite filter descriptor is not valid".
7. Change the latter condition to "No filter" and click OK
8. The grid returns correct result.

CompositeFilterForm should be improved on a way to display all applied filters,not only two of them.

public Form1()
{
    InitializeComponent();

    DataTable dt = new DataTable();
    dt.Columns.Add("Group", typeof(string));
    dt.Columns.Add("Description", typeof(string));
    for (int i = 0; i < 20; i++)
    {
        dt.Rows.Add(GenerateWord(3), "Description");
    }
    this.radGridView1.DataSource = dt;
    this.radGridView1.AutoSizeColumnsMode = Telerik.WinControls.UI.GridViewAutoSizeColumnsMode.Fill;
    this.radGridView1.EnableFiltering = true;
    this.radGridView1.ShowHeaderCellButtons = true;
    this.radGridView1.ShowFilteringRow = false;
    this.radGridView1.CreateCompositeFilterDialog += radGridView1_CreateCompositeFilterDialog;
}

string word = null;
int cons;
int vow;
//counter
int i = 0;
bool isword = false;
Random rand = new Random();
//set a new string array of consonants
string[] consonant = new string[] { "b", "c", "d", "f", "g", "h", "j", "k", "l", "m", "n", "p",
    "q", "r", "s", "t", "v", "w", "x", "y", "z" };
//set a new string array of vowels
string[] vowel = new string[] { "a", "e", "i", "o", "u" };

string GenerateWord(int length)
{
    if (length < 1) // do not allow words of zero length
        throw new ArgumentException("Length must be greater than 0");

    string word = string.Empty;

    if (rand.Next() % 2 == 0) // randomly choose a vowel or consonant to start the word
        word += consonant[rand.Next(0, 20)];
    else
        word += vowel[rand.Next(0, 4)];

    for (int i = 1; i < length; i += 2) // the counter starts at 1 to account for the initial letter
    { // and increments by two since we append two characters per pass
        string c = consonant[rand.Next(0, 20)];
        string v = vowel[rand.Next(0, 4)];

        if (c == "q") // append qu if the random consonant is a q
            word += "qu";
        else // otherwise just append a random consant and vowel
            word += c + v;
    }

    // the word may be short a letter because of the way the for loop above is constructed
    if (word.Length < length) // we'll just append a random consonant if that's the case
        word += consonant[rand.Next(0, 20)];

    return word;
}

Workaround: By using the CreateCompositeFilterDialog event you can replace the default CompositeFilterForm with your custom one where you can  load all available filter descriptors.
Unplanned
Last Updated: 27 Dec 2016 11:16 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 0
Category: GridView
Type: Bug Report
1
To reproduce: add a RadGridView and a RadButton on the form. Use the following code snippet:

public RadForm1()
{
    InitializeComponent();
    this.radGridView1.Columns.Add("Col1");
    this.radGridView1.Columns.Add("Col2");
    for (int i = 0; i < 5; i++)
    {
        this.radGridView1.Rows.Add(i, "Item" + i);
    }
    this.radGridView1.AutoSizeColumnsMode = Telerik.WinControls.UI.GridViewAutoSizeColumnsMode.Fill;
    this.radGridView1.RowValidating += radGridView1_RowValidating;
    this.radGridView1.UserAddingRow += radGridView1_UserAddingRow;
}

private void radGridView1_UserAddingRow(object sender, Telerik.WinControls.UI.GridViewRowCancelEventArgs e)
{
    e.Cancel = true;
}

private void radGridView1_RowValidating(object sender, Telerik.WinControls.UI.RowValidatingEventArgs e)
{
    if (e.Row.IsModified && e.Row is GridViewDataRowInfo)
    { 
        e.Cancel = true;
    }
}

private void radButton1_Click(object sender, EventArgs e)
{ 
    RadMessageBox.Show("Clicked");
}

1. Select a data cell and activate the editor. Enter some new value and click the button. The Click event is fired.
2. Select the new row and activate the editor. Enter some value and click the button. The Click event is NOT fired.

Workaround: use the CellValidating event instead.
Unplanned
Last Updated: 21 Nov 2016 12:31 by ADMIN
The specified format in the DisplayFormat attribute should be considered when automatically generating the GridViewDateTimeColumn.

public RadForm1()
{
    InitializeComponent();

    List<Item> items = new List<Item>();
    for (int i = 0; i < 5; i++)
    {
        items.Add(new Item(DateTime.Now.AddDays(i)));
    }

    this.radGridView1.DataSource = items;
    this.radGridView1.AutoSizeColumnsMode = Telerik.WinControls.UI.GridViewAutoSizeColumnsMode.Fill;
}

public class Item
{
    [System.ComponentModel.DisplayName("My Date")]
    [System.ComponentModel.DataAnnotations.DisplayFormat(DataFormatString = "{0:MM/dd/yyyy}")]
    public DateTime Date { get; set; }

    public Item(DateTime date)
    {
        this.Date = date;
    }
}
Unplanned
Last Updated: 21 Nov 2016 12:29 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 0
Category: GridView
Type: Bug Report
1
To reproduce: please refer to the attached gif file and sample project. The multiple newly added rows are selected only when the grid is not sorted.

Workaround: use Begin/EndUpdate when adding multiple rows
 private void radButton1_Click(object sender, EventArgs e)
 {
     this.radGridView1.ClearSelection();
     this.radGridView1.BeginUpdate();
     for (int i = 0; i < 3; i++)
     {
         GridViewDataRowInfo row = new GridViewDataRowInfo(this.radGridView1.MasterView);
         row.IsSelected = true;
         row.IsCurrent = true;
         row.Cells["Id"].Value = this.radGridView1.Rows.Count;
         row.Cells["Name"].Value = "Row" + row.Cells["Id"].Value;
         this.radGridView1.Rows.Add(row);
     }

     this.radGridView1.EndUpdate();
 }

Unplanned
Last Updated: 09 Nov 2016 07:28 by ADMIN
To reproduce: please refer o the attached sample project:

1.Click the left button. A new row will be added to the left grid and the grid will scroll to it.
2. Move the scrollbar back to the top and sort the ID column.
3. Click the left button again. A new row will be added but the grid won't scroll to it.

Perform the same steps with the right grid. The grid scrolls as expected when you add a new row in a sorted grid. 

Workaround: use the Rows.Add method instead of Rows.AddNew.
Unplanned
Last Updated: 08 Nov 2016 15:28 by ADMIN
To reproduce:
The attached video shows how you can reproduce this.

Workaround:
Use the Properties window to remove summary rows. 
Unplanned
Last Updated: 08 Nov 2016 14:34 by ADMIN
To reproduce: please refer to the attached sample project and gif file. 

Workaround:

private void radGridView1_CellEditorInitialized(object sender, GridViewCellEventArgs e)
        {
            RadDateTimeEditor editor = e.ActiveEditor as RadDateTimeEditor;
            if (editor != null)
            {
                RadDateTimeEditorElement el = editor.EditorElement as RadDateTimeEditorElement;
                if (el != null)
                {
                    el.TextBoxElement.TextBoxItem.GotFocus -= TextBoxItem_GotFocus; 
                    el.TextBoxElement.TextBoxItem.GotFocus += TextBoxItem_GotFocus; 
                }
            }
        }

        private void TextBoxItem_GotFocus(object sender, EventArgs e)
        {
            RadTextBoxItem tb = sender as RadTextBoxItem;
            if (tb != null)
            {
                tb.SelectionLength = 0;
            }
        }
Unplanned
Last Updated: 08 Nov 2016 14:18 by ADMIN
To reproduce:

public RadForm1()
{
    InitializeComponent();  

    this.radGridView1.MasterTemplate.Columns.Add(new GridViewDecimalColumn("ParentId"));
    this.radGridView1.MasterTemplate.Columns.Add(new GridViewTextBoxColumn("ParentName"));
     
    this.radGridView1.MasterTemplate.Rows.Add(1, "Item" + 1);
    this.radGridView1.MasterTemplate.Rows.Add(2, "Item" + 2);
     
    this.radGridView1.MasterTemplate.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill;

    for (int i = 0; i < 10; i++)
    {
        GridViewTemplate template = new GridViewTemplate();
        template.AllowAddNewRow = false;
        template.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill;
        template.Caption = "Tab" + i;
        template.Columns.Add(new GridViewDecimalColumn("Id"));
        template.Columns.Add(new GridViewTextBoxColumn("Name"));
        this.radGridView1.MasterTemplate.Templates.Add(template);
        template.HierarchyDataProvider = new GridViewEventDataProvider(template);
    }
    
    this.radGridView1.RowSourceNeeded += radGridView1_RowSourceNeeded;
}

private void radGridView1_RowSourceNeeded(object sender, GridViewRowSourceNeededEventArgs e)
{
    for (int i = 0; i < 10; i++)
    {
        GridViewRowInfo row = e.Template.Rows.NewRow();
        row.Cells["Id"].Value = e.ParentRow.Cells["ParentId"].Value;
        row.Cells["name"].Value = "child row" + i;
        e.SourceCollection.Add(row);
    }
}

private void radGridView1_ViewCellFormatting(object sender, CellFormattingEventArgs e)
{
    GridDetailViewCellElement cell = e.CellElement as GridDetailViewCellElement; 
    if (cell != null)
    { 
        RadPageViewStripElement strip = cell.PageViewElement as RadPageViewStripElement;
        strip.StripButtons = StripViewButtons.LeftScroll | StripViewButtons.RightScroll; 
    }
}

If you have just one row on the master level, the strip buttons don't navigate the tabs.

Workaround:  add a dummy row that is hidden: 

private void radGridView1_RowFormatting(object sender, RowFormattingEventArgs e)
{
    if (e.RowElement.RowInfo == this.radGridView1.Rows.Last())
    {
        e.RowElement.RowInfo.Height = 1;
        e.RowElement.RowInfo.MinHeight = 1;
        e.RowElement.RowInfo.MaxHeight = 1;
    }
    else
    { 
        e.RowElement.RowInfo.Height = 25;
        e.RowElement.RowInfo.MinHeight = 25;
        e.RowElement.RowInfo.MaxHeight = 25;
    }
}