The scenario which should be covered is selecting some data from Excel and pasting in the new row of RadGridView. This is an easy way for inserting data in the grid.
To reproduce: please refer to the attached screenshot public RadForm1() { InitializeComponent(); ThemeResolutionService.ApplicationThemeName = "Fluent"; this.BackColor = Color.White; this.radGridView1.EnableGrouping = false; } Workaround: this.radGridView1.TableElement.Margin = new Padding(0, 1, 0, 0);
To reproduce: run the attached sample project and activate the editor for the cell. You will notice that the row's height is now adjusted and single line text is displayed. It seems that the issue occurs because of the set Font property of the grid. Workaround: private void RadGridView1_CellEditorInitialized(object sender, Telerik.WinControls.UI.GridViewCellEventArgs e) { e.Row.MinHeight = e.Row.Height + 3; RadTextBoxEditor tbEditor = e.ActiveEditor as RadTextBoxEditor; if (tbEditor != null) { tbEditor.Multiline = true; } } private void radGridView1_CellEndEdit(object sender, GridViewCellEventArgs e) { e.Row.MinHeight = 0; }
A possible workaround is to use the following KB and change how it is implemented to iterate the MasterTemplate.Rows collection instead of the ViewInfo.Rows collection https://www.telerik.com/support/kb/winforms/gridview/details/add-check-all-in-the-header-cell-for-a-gridviewcheckboxcolumn
To reproduce: - Set IsSearchAsync to false. - Search for something and press down arrow to navigate to the last found item. - Press down again the selection is not moved to the first item.
Use attached to reproduce. Workaround: private void RadGridView1_UserAddingRow(object sender, GridViewRowCancelEventArgs e) { e.Cancel = true; }
Use attached to reproduce: - Just search for something and you will notice that the waiting bar does not disappear. Workaround: public RadForm1() { InitializeComponent(); radGridView1.MasterView.TableSearchRow.IsSearchAsync = false; radGridView1.MasterView.TableSearchRow.SearchProgressChanged += TableSearchRow_SearchProgressChanged; } private void TableSearchRow_SearchProgressChanged(object sender, SearchProgressChangedEventArgs e) { var searchCell = radGridView1.TableElement.FindDescendant<GridSearchCellElement>(); if (searchCell != null) { var waitingBar = searchCell.Children[1] as RadWaitingBarElement; waitingBar.StopWaiting(); waitingBar.Visibility = Telerik.WinControls.ElementVisibility.Collapsed; } }
How to reproduce: public partial class Form1 : Form { private RadGridView grid = new RadGridView(); public Form1() { InitializeComponent(); Controls.Add(grid); grid.Dock = DockStyle.Fill; grid.DataSource = this.GetData(); } private object GetData() { DataTable dataTable = new DataTable(); dataTable.Columns.Add("Id", typeof(int)); dataTable.Columns.Add("Name", typeof(string)); dataTable.Columns.Add("Checked", typeof(bool)); for (int i = 0; i < 200; i++) { dataTable.Rows.Add(i, "Name " + i, i % 2 == 0); } return dataTable; } protected override void OnLoad(EventArgs e) { base.OnLoad(e); grid.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill; GridViewCheckBoxColumn checkBoxColumn = (GridViewCheckBoxColumn)grid.Columns["Checked"]; checkBoxColumn.EnableHeaderCheckBox = true; checkBoxColumn.SortOrder = RadSortOrder.Ascending; } } Workaround: public partial class Form1 : Form { private RadGridView grid = new RadGridView(); public Form1() { InitializeComponent(); Controls.Add(grid); grid.Dock = DockStyle.Fill; grid.DataSource = this.GetData(); grid.MouseDown += grid_MouseDown; grid.MouseUp += grid_MouseUp; } private object GetData() { DataTable dataTable = new DataTable(); dataTable.Columns.Add("Id", typeof(int)); dataTable.Columns.Add("Name", typeof(string)); dataTable.Columns.Add("Checked", typeof(bool)); for (int i = 0; i < 200; i++) { dataTable.Rows.Add(i, "Name " + i, i % 2 == 0); } return dataTable; } private void grid_MouseDown(object sender, MouseEventArgs e) { RadGridView grid = (RadGridView)sender; RadCheckBoxElement cell = grid.ElementTree.GetElementAtPoint(e.Location) as RadCheckBoxElement; if (cell != null && cell.Parent is GridCheckBoxHeaderCellElement) { sw = new Stopwatch(); sw.Start(); grid.BeginUpdate(); } } Stopwatch sw; private void grid_MouseUp(object sender, MouseEventArgs e) { RadGridView grid = (RadGridView)sender; RadCheckBoxElement cell = grid.ElementTree.GetElementAtPoint(e.Location) as RadCheckBoxElement; if (cell != null && cell.Parent is GridCheckBoxHeaderCellElement) { grid.EndUpdate(); sw.Stop(); Console.WriteLine(sw.ElapsedMilliseconds); } } protected override void OnLoad(EventArgs e) { base.OnLoad(e); grid.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill; GridViewCheckBoxColumn checkBoxColumn = (GridViewCheckBoxColumn)grid.Columns["Checked"]; checkBoxColumn.EnableHeaderCheckBox = true; checkBoxColumn.SortOrder = RadSortOrder.Ascending; } }
Use attached to reproduce. - Edit random cell and press Enter. - Check the CellValueChanged event handler, the changes variable is null. This will work if you comment the OnShown method. Workaround: IEditableObject editbaleObject = radGridView1.CurrentRow.DataBoundItem as IEditableObject; if (editbaleObject != null) { editbaleObject.EndEdit(); }
Use attached to reproduce. - Check then try to uncheck the rows. Workaround: private void RadGridView1_CreateCell(object sender, GridViewCreateCellEventArgs e) { if (e.CellType == typeof(GridCheckBoxHeaderCellElement)) { e.CellElement = new MyHeaderCheckboxCellElement(e.Column, e.Row); } } class MyHeaderCheckboxCellElement : GridCheckBoxHeaderCellElement { public MyHeaderCheckboxCellElement(GridViewColumn col, GridRowElement row) : base (col, row) { } protected override void checkbox_ToggleStateChanged(object sender, StateChangedEventArgs args) { base.checkbox_ToggleStateChanged(sender, args); var prop = this.ViewInfo.GetType().GetProperty("Version", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance); int value = (int)prop.GetValue(this.ViewInfo); prop.SetValue(this.ViewInfo, --value); } }
Use attached to reproduce. - Open the data filter dialog from the excel-like filtering on the date column. - The date time format in the editor is not respected. - Consider the default cell editor as well. Workaround: private void RadGridView1_CreateCompositeFilterDialog(object sender, GridViewCreateCompositeFilterDialogEventArgs e) { var dialog = e.Dialog as CompositeDataFilterForm; dialog.DataFilter.EditorInitialized -= DataFilter_EditorInitialized; dialog.DataFilter.EditorInitialized += DataFilter_EditorInitialized; dialog.DataFilter.NodeFormatting -= DataFilter_NodeFormatting; dialog.DataFilter.NodeFormatting += DataFilter_NodeFormatting; } private void DataFilter_NodeFormatting(object sender, TreeNodeFormattingEventArgs e) { var criteriaNode = e.NodeElement as DataFilterCriteriaElement; if (criteriaNode != null) { var node = criteriaNode.Data as DataFilterCriteriaNode; if (node.DescriptorValue != null && node.PropertyName == "Date") { criteriaNode.ValueElement.Text = ((DateTime?)node.DescriptorValue).Value.ToString("MM/dd/yyyy"); } } } private void DataFilter_EditorInitialized(object sender, TreeNodeEditorInitializedEventArgs e) { var editor = e.Editor as TreeViewDateTimeEditor; if (editor != null) { var element = editor.EditorElement as BaseDateTimeEditorElement; element.Format = DateTimePickerFormat.Custom; element.CustomFormat = "dd/MM/yyyy"; } }
To reproduce: setup self-reference hierarchy. Add a GridViewHyperlinkColumn and show the expander item in this column. Please refer to the attached screenshot. The hyperlink text overlaps with the expander. Workaround: set the MasterTemplate.SelfReferenceExpanderColumn to a different column.
A title or caption that can be positioned on the top or bottom of RadGridView that shows a text defined by developer.
After populating the RadGridView, unbound in this example, I use RadGridView1.ClearSelection. This works when using some themes such as Crystal and Office2013, but not others, like Fluent. See attached..... believe me that the code is EXACTLY the same for each, just the application theme is difference. This should be an easy one to replicate.
To reproduce: public RadForm1() { InitializeComponent(); this.radGridView1.EnableFiltering = true; this.radGridView1.ShowHeaderCellButtons = true; this.radGridView1.FilterPopupRequired += radGridView1_FilterPopupRequired; } private void radGridView1_FilterPopupRequired(object sender, Telerik.WinControls.UI.FilterPopupRequiredEventArgs e) { e.FilterPopup.PopupOpening -= FilterPopup_PopupOpening; e.FilterPopup.PopupOpening += FilterPopup_PopupOpening; } private void FilterPopup_PopupOpening(object sender, CancelEventArgs args) { args.Cancel = true; } Workaround: either set the ShowHeaderCellButtons property to false or closed the popup immediately after it is opened. private void radGridView1_FilterPopupRequired(object sender, Telerik.WinControls.UI.FilterPopupRequiredEventArgs e) { e.FilterPopup.PopupOpening -= FilterPopup_PopupOpening; e.FilterPopup.PopupOpening += FilterPopup_PopupOpening; } private void FilterPopup_PopupOpening(object sender, CancelEventArgs args) { RadListFilterPopup popup = sender as RadListFilterPopup; popup.PopupOpened -= popup_PopupOpened; popup.PopupOpened += popup_PopupOpened; } private void popup_PopupOpened(object sender, EventArgs args) { RadListFilterPopup popup = sender as RadListFilterPopup; popup.ClosePopup(RadPopupCloseReason.Mouse); }
To reproduce: GridViewCheckBoxColumn chkCol = new GridViewCheckBoxColumn(); chkCol.HeaderText = "I have wrap text set yet I cannot see full column header text."; chkCol.Width = 90; chkCol.WrapText = true; chkCol.EnableHeaderCheckBox = true; chkCol.EditMode = EditMode.OnValueChange; radGridView1.Columns.Add(chkCol); Workaround: private void RadGridView1_ViewCellFormatting(object sender, CellFormattingEventArgs e) { var cell = e.CellElement as GridCheckBoxHeaderCellElement; if (cell != null) { cell.CheckBox.TextWrap = true; } }
Use attached to reproduce! Workaround: remove the Begin\End update block.
To reproduce: private void radButton1_Click(object sender, EventArgs e) { RadPrintDocument printDocument = new RadPrintDocument(); printDocument.DefaultPageSettings.Landscape = true; printDocument.DocumentName = "Example Case"; GridPrintStyle style = new GridPrintStyle(this.radGridView1) { FitWidthMode = PrintFitWidthMode.FitPageWidth, PrintGrouping = false, PrintSummaries = false, PrintHeaderOnEachPage = true, PrintHiddenColumns = false, }; TableViewDefinitionPrintRenderer renderer = new TableViewDefinitionPrintRenderer(this.radGridView1); renderer.PrintPages.Add( this.radGridView1.Columns[1], this.radGridView1.Columns[2], this.radGridView1.Columns[3], this.radGridView1.Columns[4], this.radGridView1.Columns[5], this.radGridView1.Columns[6]); style.PrintRenderer = renderer; this.radGridView1.PrintStyle = style; this.radGridView1.PrintCellFormatting += RadGridView1_PrintCellFormatting; radGridView1.Print(true, printDocument); } private void RadGridView1_PrintCellFormatting(object sender, Telerik.WinControls.UI.PrintCellFormattingEventArgs e) { } Workaround: use the PrintCellFormatting of the TableViewDefinitionPrintRenderer
To reproduce: run the sample approach an follow the steps: 1. Filter the "Mask" column by entering " " in the filter cell. Press Enter. The grid is filtered as expected. 2. Activate the editor again and press Backspace+Enter. You will notice that it is not possible to clear the applied filter. Workaround: use GridViewTextBoxColumn