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.
Try to set the number of columns for the RadGridView to greater than 11230 columns, it throws "An item with the same key has already been added." exception. It does not happen when the code is run for the first time, but on any subsequent calls. Step to reproduce: 1. Create project with Windows form 2. Place RadGridView on form 3. Add following code: private void Form1_Load(object sender, EventArgs e) { radGridView1.VirtualMode = true; radGridView1.ColumnCount = 15000; } 4. Run application multiple times and you will get an exception at some moment during start up. NO WORKAROUND
Wrong column name escaping in filter expression when the special symbols is used in the name like: "_x0000_", "_x0032_0", "_x0032_0_x0000_" in the bound data schema
Scroll bar calculations are wrong, when rows are hidden in CellClick event.
Typo error - "Lenght" instead of "Length", located under "Text" in the GridView expression editor
Workaround the issue by using the DataBindingComplete event in the following manner: private GridViewRowInfo oldCurrentRow = null; protected override void OnLoad(EventArgs e) { this.radGridView1.DataBindingComplete += this.OnDataBindingComplete; this.oldCurrentRow = this.radGridView1.CurrentRow; this.radGridView1.DataSource = Telerik.Help.Data.GetDummyEmployees(0); } private void OnDataBindingComplete(object sender, Telerik.WinControls.UI.GridViewBindingCompleteEventArgs e) { if (this.oldCurrentRow != this.radGridView1.CurrentRow && this.radGridView1.RowCount == 0) { this.radGridView1.MasterTemplate.EventDispatcher.RaiseEvent<CurrentRowChangedEventArgs>(EventDispatcher.CurrentRowChanged, this.radGridView1.MasterTemplate, new CurrentRowChangedEventArgs(null, null)); } this.oldCurrentRow = null; }
Let's have a RadGridView that is RightToLeft.Yes with at least three columns. In the CellFormatting event set RightToLeft.No to the CellElements that belong to the middle column. Now start dragging the last column (first in RightToLeft.Yes) so that it becomes bigger and its size goes beyond what RadGridView gives as available estate area. You will notice that the CellElements that are RightToLeft.No go in the opposite direction. Resolution: Currently, the correct way to achieve a grid with RightToLeft.Yes while some of its cells are RightToLeft.No is to use a custom column with custom cells: public class MyGridViewDecimalColumn : GridViewDecimalColumn { public MyGridViewDecimalColumn() : base() { } public MyGridViewDecimalColumn(string fieldName) : base(fieldName) { } public MyGridViewDecimalColumn(string fieldName, string uniqueName) : base(uniqueName, fieldName) { } public override Type GetCellType(GridViewRowInfo row) { if (row is GridViewDataRowInfo) { return typeof(MyGridDecimalCellElement); } return base.GetCellType(row); } } public class MyGridDecimalCellElement : GridDataCellElement { public MyGridDecimalCellElement(GridViewColumn col, GridRowElement row) : base(col, row) { } protected override Type ThemeEffectiveType { get { return typeof(GridDataCellElement); } } protected override Telerik.WinControls.Primitives.TextParams CreateTextParams() { Telerik.WinControls.Primitives.TextParams parameters = base.CreateTextParams(); parameters.rightToLeft = false; return parameters; } public override bool IsCompatible(GridViewColumn data, object context) { return base.IsCompatible(data, context) && data is GridViewDecimalColumn; } }