1. Create a new project with RadGridView and bind it. 2. Setup column groups view. 3. Change some column and set the data source again on button click. 4. Run the project
Horizontal cell navigation causes sometime scrolling per page instead of paging to the next invisible column.
RadGridView scrolls to right when clicking on a cell that is larger than the visible area.
We also have another grid (the Microsoft one) and in that one for resizing a vertical line is drawn to indicate the size of your column. Only when you release the mouse is the column actually resized. I think this is better for the performance of the grid. In the attachment you can see what I mean.
There should be a fit mode which allows one to print a RadGridView on two pages.
Horizontal scrolling when multiple selection is performed by mouse.
Vertical scrolling of self-referencing hierarchy in RadGridView is slow when there is more than 10 columns.
ADD. RadGridView - add support for self-reference hierarchy for child levels as well
The drag and drop of rows or columns to scroll the grid if the target item is not visible.
When a user groups the grid by a certain column and then attempts to drag the column back to the header, column reorder is possible, even though the AllowColumnReorder is false.
The following strings on the print settings dialog of RadGridView cannot be localized: "Page fit mode", "Print:", "Alternating row color", "Summary cells"
When RightToLeft is enabled in RadGridView and you try to print it, the layout of the pages is messed up.
"IsContainedIn" and "IsNotContainedIn" operators currently not work properly with composite values like: "1, 2, 3"
You cannot select cells from first and last column when the RadGridView is in right to left mode.
When a RadGridView instance is initialized in the Form's constructor, the grid is not assigned a binding context. Note: This is a desired behavior.
To reproduce: public Form1() { InitializeComponent(); Random r = new Random(); DataTable table = new DataTable(); table.Columns.Add("ID", typeof(int)); table.Columns.Add("Name", typeof(string)); table.Columns.Add("Bool", typeof(bool)); table.Columns.Add("DateColumn", typeof(DateTime)); for (int i = 0; i < 10; i++) { table.Rows.Add(i, "Row " + i, r.Next(10) > 5 ? true : false, DateTime.Now.AddHours(i)); } this.radGridView1.DataSource = table; radGridView1.Columns[0].FormatString = "{0:n3}"; } MemoryStream ms = new MemoryStream(); private void radButton1_Click(object sender, EventArgs e) { // ms.SetLength(0); reset memory stream to save new layout radGridView1.SaveLayout(ms); } private void radButton2_Click(object sender, EventArgs e) { radGridView1.LoadLayout(ms); } }
To reprouduce, have a grid with multiple rows selected using the translucent rectangle and use the following code on a button click: using System; using System.Data; using System.Windows.Forms; using Telerik.WinControls.UI; namespace Lab.Grid { public partial class GridSelectionException : MainForm { private RadGridView gridView = new RadGridView(); public GridSelectionException() { InitializeComponent(); gridView.Dock = DockStyle.Fill; gridView.Parent = this; gridView.BringToFront(); Random r = new Random(); DataTable table = new DataTable(); table.Columns.Add("ID"); table.Columns.Add("Name"); table.Columns.Add("Bool"); for (int i = 0; i < 10; i++) { table.Rows.Add(i, "Row" + i, (r.Next(10) > 5) ? true : false); } gridView.DataSource = table; gridView.MultiSelect = true; } protected override void OnButton1Click() { //your code for deleting rows if (this.gridView.SelectedRows.Count > 0) { System.Windows.Forms.Cursor.Current = Cursors.WaitCursor; GridViewDataRowInfo[] rows = new GridViewDataRowInfo[this.gridView.SelectedRows.Count]; this.gridView.SelectedRows.CopyTo(rows, 0); this.gridView.TableElement.BeginUpdate(); for (int i = 0; i <= rows.Length - 1; i++) { //rows[i].IsSelected = false; rows[i].Delete(); } this.gridView.TableElement.EndUpdate(); System.Windows.Forms.Cursor.Current = Cursors.Arrow; } } } }
Currently when clicking on the expander cell RadGridView scrolls to the currently selected column which in some cases causes unnecessary scrolling Workaround: public class CustomGridControl : RadGridView { public override string ThemeClassName { get { return typeof(RadGridView).FullName; } set { } } protected override void OnMouseDown(MouseEventArgs e) { RadElement element = this.ElementTree.GetElementAtPoint(e.Location); GridGroupExpanderCellElement expanderCell = element as GridGroupExpanderCellElement; if (expanderCell == null) { expanderCell = element.FindAncestor<GridGroupExpanderCellElement>(); } if (expanderCell != null) { this.TableElement.BeginUpdate(); expanderCell.RowInfo.IsExpanded = !expanderCell.RowInfo.IsExpanded; this.TableElement.HScrollBar.Value = 0; this.TableElement.EndUpdate(); return; } base.OnMouseDown(e); } }
debug attached sample application steps: set number of rows to 500 change to 2nd page change to 1st page set number of rows to 0 change to 2nd page
FIX. RadGridView - the PropertyName from the arguments of the RowsChanged event is null, while it should display the changed field name