The cell navigation is wrong when the grid is ungrouped. Steps to reproduce: 1. Enable cell selection mode 2. Navigate with keyboard 3. Group the RadGridView by one column 4. Navigate with keyboard 5. Ungroup the RadGridView's rows 6. Now Keyboard navigation is wrong. Same behavior appears with the default selection mode: - Group the grid and select a row in a group - Ungroup and use the keyboard to navigate between the rows => it navigates only the rows that were in the group where we have selected a row WORKAROUND: private void radGridView1_GroupByChanged(object sender, Telerik.WinControls.UI.GridViewCollectionChangedEventArgs e) { GridViewRowInfo row = this.radGridView1.CurrentRow; this.radGridView1.CurrentRow = null; this.radGridView1.CurrentRow = row; }
Custom filtering does not work when self-referencing hierarchy used in RadGridView. Work around: GridView.EnableFiltering = !GridView.EnableFiltering; GridView.EnableFiltering = !GridView.EnableFiltering;
If you set the MinWidth and MaxWidth to a column and then set AutoSizeColumnMode to Fill (all this in the form constructor) a gap will appear between the columns. Workaround: set the Fill before the MinWidth and MaxWidth and to do all these operations on Load.
Work Around: 1. Create custom text box editor. public class MyTextBoxEditor : RadTextBoxEditor { private bool isValueChanging = false; private int selectionStart = -1; public MyTextBoxEditor()
Steps to reproduce - by using the code below follow these steps 1) Enter some text in the first cell 2) In the first ComboBox cell ("city") type the beginning of the word, for example "L", then the dataSource gets filtered and contains only items begins with "L". 3) Move down to the second Item by the down arrow key and choose it by pressing tab key 4) Now the next cell becomes focused, type in capital "M" Result: Exception: IndexOutOfRangeException - "Index was outside the bounds of the array." DataTable dt = new DataTable(); dt.Columns.Add("name"); dt.Columns.Add("city", typeof(int)); dt.Columns.Add("role", typeof(int)); radGridView1.DataSource = dt;. radGridView1.Columns.RemoveAt(1); radGridView1.Columns.RemoveAt(1); DataTable dtCities = new DataTable(); dtCities.Columns.Add("id", typeof(int)); dtCities.Columns.Add("name"); dtCities.Rows.Add(1, "New York"); dtCities.Rows.Add(2, "London"); dtCities.Rows.Add(2, "Lisabon"); GridViewComboBoxColumn cityCol = new GridViewComboBoxColumn("city"); cityCol.DataSource = dtCities; cityCol.ValueMember = "id"; cityCol.DisplayMember = "name"; cityCol.AutoCompleteMode = AutoCompleteMode.SuggestAppend; cityCol.DropDownStyle = Telerik.WinControls.RadDropDownStyle.DropDown; radGridView1.Columns.Add(cityCol); DataTable dtRoles = new DataTable(); dtRoles.Columns.Add("id", typeof(int)); dtRoles.Columns.Add("name"); dtRoles.Rows.Add(1, "Sales Man"); dtRoles.Rows.Add(2, "Manager"); GridViewComboBoxColumn roleCol = new GridViewComboBoxColumn("role"); roleCol.DataSource = dtRoles; roleCol.ValueMember = "id"; roleCol.DisplayMember = "name"; roleCol.AutoCompleteMode = AutoCompleteMode.SuggestAppend; roleCol.DropDownStyle = Telerik.WinControls.RadDropDownStyle.DropDown; radGridView1.Columns.Add(roleCol); WORKAROUND: Replace the editor with a new one to avoid reusage void radGridView1_EditorRequired(object sender, EditorRequiredEventArgs e) { if (e.EditorType == typeof(RadDropDownListEditor)) { e.Editor = new RadDropDownListEditor(); } }
Steps to reproduce: 1. Use the RadGridView Smart Tag to set its data source 2. Press "Add Project DataSource" 3. Select "Object" 4. Drill down and select the class you created. (see below) 5. Select the New Data Source 6. Run the project Code to reproduce: public class TestClass { public enum Month { January, Febuary, March, April, May, June, July, August, September, October, November, December } public Month TestMonth {get; set;} public String TestMessage {get; set;} public TestClass(Month month, String message) { TestMonth = month; TestMessage = message; } } Workaround: Use BindingList instead System.Windows.Forms.BindingSource.
Create a GridViewComboBoxColumn. When you select the field either by tab or single-click, it is no longer possible to select a value by pressing an alpha-numeric key on keyboard. You must first press the down-arrow key, or select a value with the mouse. Pressing the down-arrow shouldn't be required.
STEPS TO REPRODUCE: 1) Create an excel file with sample string values (for example 3x3): | Value 1 | Value 2 | Value 3 | | Value 4 | Value 5 | Value 6 | | Value 7 | Value 8 | Value 9 | 2) Validate as double: private ErrorProvider errorProvider = new ErrorProvider(); void gridView_CellValidated(object sender, CellValidatedEventArgs e) { if (e.Value == null) { return; } var cell = e.Row.Cells[e.ColumnIndex]; double value = 0; if (double.TryParse(e.Value.ToString(), out value)) { cell.ErrorText = string.Empty; errorProvider.SetError(gridView, string.Empty); } else { cell.ErrorText = "Wrong input format"; errorProvider.SetError(gridView, "Wrong input format"); } } 3) Copy the cells from excel and paste them in the grid Expected result: Validate all cells Actual result: Only the current cell is being validated and the CellValidated and CellValidating events are not fired for the other cells WORKAROUND: public class CustomGridBehavior : BaseGridBehavior { Form1 form; public CustomGridBehavior(Form1 form) { this.form = form; } public override bool ProcessKey(KeyEventArgs keys) { if (keys.KeyCode == Keys.V && keys.Control) { GridControl.MasterTemplate.Paste(); foreach (GridViewRowInfo row in GridControl.ChildRows) { form.ValidateCell(row.Cells[GridControl.CurrentColumn.Index]); } return true; } return base.ProcessKey(keys); } } void gridView_ContextMenuOpening(object sender, ContextMenuOpeningEventArgs e) { foreach (RadMenuItem item in e.ContextMenu.Items) { if (item.Text == "Paste") { e.ContextMenu.Items.Remove(item); break; } } RadMenuItem myPasteItem = new RadMenuItem("Paste"); myPasteItem.Click += new EventHandler(myPasteItem_Click); e.ContextMenu.Items.Add(myPasteItem); } void myPasteItem_Click(object sender, EventArgs e) { gridView.MasterTemplate.Paste(); foreach (GridViewRowInfo row in gridView.ChildRows) { ValidateCell(row.Cells[gridView.CurrentColumn.Index]); } }
1. Create a new project and add RadGridView. 2. Bind a hierarchy. 3. Set MultiSelect property to true. 4. Replace default GridViewHierarchyRowInfo class with a custom one and override its SetBooleanProperty method. 5. Change child rows IsSelected property when parent row IsSelected property changes. 6. Run the project and try to select rows with the mouse.
1. Create a new project with RadGridView. 2. Call Rows.Clear method. 3. Add some rows. 4. Run the project and you will see that the scrollbar maximum is wrong.
The setup of ExpressionFormattingObject for inner GridViewTemplate not apply the conditional formatting to children rows
Run the enclosed application and select the funnel icon in most right column "AKTIV" and select menu item "No filter". The application crashes. If you do the same using checkbox in filter cell, everything works fine.
Allow hiding the SummaryRowItems in RadGridView's Groups
When one exports a grid with text written in right-to-left the exported file has all text written in left-to-right.
FormatException is raised when a user attempts to filter RadGridView's combobox column
The DataType property is not implemented in the designer. Currently you could set this property only by code.
The used RadGridView BindingSource is bind to another instance of BindingSource in this case
Currently exporters do not respect the RightToLeft property of RadGridView and export the data always as left to right.
If RadGridView is bound to custom objects that implement IComparable<T>, Excel-like filtering does not work. Currently, the issue can be avoided through implementing IComparable instead.
1. Create a new project with RadGridView and add a button. 2. Run the project. 3. Click on a cell and start to edit. 4. Click on the button, it will not receive the click.