To reproduce:
- Set the AutoSize to true
- Add GroupDescriptor
- An InvalidOperationException is thrown
Please run the attached sample project and try to expand a row. The following error occurs:
System.NullReferenceException was unhandled by user code
The function OnNotifyPropertyChanged(string propertyName) in RadGridView.cs does not call the base function of RadControl.
RadGridView.cs
protected override void OnNotifyPropertyChanged(string propertyName)
{
if (propertyName == "AutoSize")
{
if (!this.AutoSize)
{
this.RootElement.StretchHorizontally = true;
this.RootElement.StretchVertically = true;
}
else
{
this.RootElement.StretchHorizontally = false;
this.RootElement.StretchVertically = false;
}
}
}
RadControl.cs
/// <summary>
/// Raises the PropertyChanged event
/// </summary>
/// <param name="propertyName">The name of the property</param>
protected virtual void OnNotifyPropertyChanged(string propertyName)
{
this.OnNotifyPropertyChanged(new PropertyChangedEventArgs(propertyName));
}
protected virtual void OnNotifyPropertyChanged(PropertyChangedEventArgs e)
{
PropertyChangedEventHandler handler1 =
(PropertyChangedEventHandler)this.Events[RadControl.PropertyChangedEventKey];
if (handler1 != null)
{
handler1(this, e);
}
}
Because of this i cannot do the following
RadGridView grid = new RadGridView();
grid.OnNotifyPropertyChanged("mypropertyname");
I currently work around this by doing the following
RadGridView grid = new RadGridView(); grid.OnNotifyPropertyChanged(new PropertyChangedEventArgs("mypropertyname"));
I need this functionality because i have a custom control which is derived from RadGridView and it has a custom property that requires databinding with INotifyPropertyChanged. I cannot implement this interface myself because the grid already does this.
I have checked this in both the 2018.1.220 and 2019.1.219 source.
Kind regards,
Edwin Dirkzwager
CIP Software
When you start typing in the search text box some long text, not all key strokes will be handled. Please refer to the attached gifs file illustrating the behavior in the previous version and the latest release.
Please refer to the attached sample project. Run the project and try typing "too long to type" in as your search.
Dears
Looks like after last Telerik update to 2019.1.117.40 lilter do digits/numbers is not working any more. When I'd like filter out on decimal columns (or even text column but with linked decimal/int values) I get no results, no rows.
With text columns all is ok.
BR
Steps to reproduce:
When the grid is loaded and displayed, a NullReferenceException will be thrown:
Message : Object reference not set to an instance of an object. Type : System.NullReferenceException Source : Telerik.WinControls.GridView Stack trace : Telerik.WinControls.UI.BestFitHelper.SetColumnWidth(GridViewColumn column, Single desiredWidth) Telerik.WinControls.UI.BestFitHelper.BestFitColumnCore(GridViewColumn column, BestFitColumnMode mode) Telerik.WinControls.UI.BestFitHelper.ProcessRequests() Telerik.WinControls.UI.RowsContainerElement.MeasureOverride(SizeF availableSize) Telerik.WinControls.RadElement.MeasureCore(SizeF availableSize) Telerik.WinControls.RadElement.Measure(SizeF availableSize) Telerik.WinControls.UI.ScrollViewElement`1.MeasureViewElement(SizeF availableSize) Telerik.WinControls.UI.ScrollViewElement`1.MeasureView(SizeF availableSize) Telerik.WinControls.UI.ScrollViewElement`1.MeasureOverride(SizeF availableSize) Telerik.WinControls.UI.GridTableElement.MeasureOverride(SizeF availableSize) Telerik.WinControls.RadElement.MeasureCore(SizeF availableSize) Telerik.WinControls.RadElement.Measure(SizeF availableSize) Telerik.WinControls.Layouts.DockLayoutPanel.MeasureOverride(SizeF constraint) Telerik.WinControls.RadElement.MeasureCore(SizeF availableSize) Telerik.WinControls.RadElement.Measure(SizeF availableSize) Telerik.WinControls.UI.LightVisualElement.MeasureElements(SizeF availableSize, SizeF clientSize, Padding borderThickness) Telerik.WinControls.UI.LightVisualElement.MeasureOverride(SizeF availableSize) Telerik.WinControls.RadElement.MeasureCore(SizeF availableSize) Telerik.WinControls.RadElement.Measure(SizeF availableSize) Telerik.WinControls.RootRadElement.MeasureOverride(SizeF availableSize) Telerik.WinControls.RootRadElement.MeasureCore(SizeF availableSize) Telerik.WinControls.RadElement.Measure(SizeF availableSize) Telerik.WinControls.RadElementTree.PerformInnerLayout(Boolean performMeasure, Int32 x, Int32 y, Int32 width, Int32 height) Telerik.WinControls.RadControl.OnLoad(Size desiredSize) Telerik.WinControls.UI.RadGridView.OnLoad(Size desiredSize) Telerik.WinControls.RadControl.LoadElementTree(Size desiredSize) Telerik.WinControls.RadControl.OnCreateControl() System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible) System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible) System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible) System.Windows.Forms.Control.CreateControl() System.Windows.Forms.Control.SetVisibleCore(Boolean value) Telerik.WinControls.UI.TabPanel.set_Visible(Boolean value) Telerik.WinControls.UI.TabStripPanel.SetSelected(TabPanel tabPanel) Telerik.WinControls.UI.TabStripPanel.UpdateTabSelection(Boolean updateFocus) Telerik.WinControls.UI.Docking.DockTabStrip.UpdateTabSelection(Boolean updateFocus) Telerik.WinControls.UI.Docking.ToolTabStrip.UpdateTabSelection(Boolean updateFocus) Telerik.WinControls.UI.TabStripPanel.OnHandleCreated(EventArgs e) System.Windows.Forms.Control.WmCreate(Message& m) System.Windows.Forms.Control.WndProc(Message& m) System.Windows.Forms.ScrollableControl.WndProc(Message& m) Telerik.WinControls.RadControl.WndProc(Message& m) Telerik.WinControls.UI.SplitPanel.WndProc(Message& m) System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
Hi
I just found a strange issue using the latest bits of the Telerik RadGridView.
I have a grid that contains ColumnGroupsViewDefinition. Inside one of the group, one of the column is a GridViewComboBoxColumn.
The grid shows correctly on the screen.
If I try to export it using GridViewSpreadExport, I get an exception saying "input string was not in a correct format".
The export works fine if:
-I don't have groups
-I export to HTML using ExportToHTML
-I export to HTML using ExportToCSV
Any help please?
To reproduce: the issue is reproducible in the Demo application >> GridView >> Tabbed Views. Follow the steps from the gif file. Workaround: private void radGridView1_ViewCellFormatting(object sender, CellFormattingEventArgs e) { GridDetailViewCellElement cell = e.CellElement as GridDetailViewCellElement; if (cell != null) { cell.MinSize = new Size(e.CellElement.Parent.Size.Width - this.radGridView1.TableElement.GroupIndent , 10); } }
This was working this way in 2017 then we changer it so all rows are affected. Bot modes should be supported.
To reproduce: Initially, the row at index 0 is white, when you move it to index 5 it is still white until you hover it: public RadForm1() { InitializeComponent(); this.radGridView1.Columns.Add("Data"); for (int i = 0; i < 100; i++) { this.radGridView1.Rows.Add(i); } this.radGridView1.EnableAlternatingRowColor = true; this.radGridView1.TableElement.AlternatingRowColor = Color.Aqua; } private void radButton1_Click(object sender, EventArgs e) { this.radGridView1.Rows.Move(0, 5); } Workaround: private void radButton1_Click(object sender, EventArgs e) { this.radGridView1.Rows.Move(0, 5); this.radGridView1.Rows[5].InvalidateRow(); }
To reproduce: use the following code snippet: Sub New() InitializeComponent() Dim view As New ColumnGroupsViewDefinition() view.ColumnGroups.Add(New GridViewColumnGroup("Customer Contact")) view.ColumnGroups.Add(New GridViewColumnGroup("Details")) view.ColumnGroups(1).Groups.Add(New GridViewColumnGroup("Address")) view.ColumnGroups(1).Groups.Add(New GridViewColumnGroup("Contact")) view.ColumnGroups(0).Rows.Add(New GridViewColumnGroupRow()) view.ColumnGroups(0).Rows(0).ColumnNames.Add("CompanyName") view.ColumnGroups(0).Rows(0).ColumnNames.Add("ContactName") view.ColumnGroups(0).Rows(0).ColumnNames.Add("ContactTitle") view.ColumnGroups(1).Groups(0).Rows.Add(New GridViewColumnGroupRow()) view.ColumnGroups(1).Groups(0).Rows(0).ColumnNames.Add("Address") view.ColumnGroups(1).Groups(0).Rows(0).ColumnNames.Add("City") view.ColumnGroups(1).Groups(0).Rows(0).ColumnNames.Add("Country") view.ColumnGroups(1).Groups(1).Rows.Add(New GridViewColumnGroupRow()) view.ColumnGroups(1).Groups(1).Rows(0).ColumnNames.Add("Phone") view.ColumnGroups(1).Groups(1).Rows(0).ColumnNames.Add("Fax") RadGridView1.ViewDefinition = view End Sub Private Sub RadForm1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Me.CustomersTableAdapter.Fill(Me.NwindDataSet.Customers) Me.RadGridView1.BestFitColumns(BestFitColumnMode.AllCells) RadGridView1.Columns("Fax").IsVisible = False RadGridView1.Columns("Phone").IsVisible = False Dim spreadExporter As GridViewSpreadExport = New GridViewSpreadExport(Me.RadGridView1) Dim exportRenderer As New SpreadExportRenderer() spreadExporter.HiddenColumnOption = Export.HiddenOption.ExportAsHidden spreadExporter.FreezeHeaderRow = True spreadExporter.ExportGroupedColumns = True spreadExporter.ExportChildRowsGrouped = True spreadExporter.ExportVisualSettings = True spreadExporter.ExportHierarchy = True spreadExporter.ExportViewDefinition = True spreadExporter.ExportFormat = SpreadExportFormat.Xlsx Dim fileName = "..\..\export" & DateTime.Now.ToLongTimeString().Replace(":", "_") & ".xlsx" spreadExporter.RunExport(fileName, exportRenderer) Process.Start(fileName) End Sub Workaround: instead of hiding all the columns inside a group, hide the entire group: Sub New() InitializeComponent() Dim view As New ColumnGroupsViewDefinition() view.ColumnGroups.Add(New GridViewColumnGroup("Customer Contact")) view.ColumnGroups.Add(New GridViewColumnGroup("Details")) view.ColumnGroups(1).Groups.Add(New GridViewColumnGroup("Address")) view.ColumnGroups(1).Groups.Add(New GridViewColumnGroup("Contact")) view.ColumnGroups(0).Rows.Add(New GridViewColumnGroupRow()) view.ColumnGroups(0).Rows(0).ColumnNames.Add("CompanyName") view.ColumnGroups(0).Rows(0).ColumnNames.Add("ContactName") view.ColumnGroups(0).Rows(0).ColumnNames.Add("ContactTitle") view.ColumnGroups(1).Groups(0).Rows.Add(New GridViewColumnGroupRow()) view.ColumnGroups(1).Groups(0).Rows(0).ColumnNames.Add("Address") view.ColumnGroups(1).Groups(0).Rows(0).ColumnNames.Add("City") view.ColumnGroups(1).Groups(0).Rows(0).ColumnNames.Add("Country") view.ColumnGroups(1).Groups(1).Rows.Add(New GridViewColumnGroupRow()) view.ColumnGroups(1).Groups(1).Rows(0).ColumnNames.Add("Phone") view.ColumnGroups(1).Groups(1).Rows(0).ColumnNames.Add("Fax") RadGridView1.ViewDefinition = view view.ColumnGroups(1).Groups.Last().IsVisible=False End Sub
To reproduce: change the decimal separator to ",". Please refer to the attached sample project and follow the steps from the attached gif file. Workaround: change the CurrentCulture in your application in order to affect the decimal separator: Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-GB");
To reproduce: - Add a checkbox column and hide some of the cells. - Change some values and then click on empty cell. - Exception occurs in OnMouseDownLeft method (GridRowBeahvior class) Workaround: Hide the checkbox only.
To reproduce: please refer to the attached sample project and follow the steps from the attached gif file. 1. Run the project and type "hana" in the second filter cell. You will notice that after a few seconds the input is handled and the grid is filtered. Workaround: use RadVirtualGrid instead. https://docs.telerik.com/devtools/winforms/virtualgrid/overview https://docs.telerik.com/devtools/winforms/virtualgrid/filtering/filtering Second workaround: https://docs.telerik.com/devtools/winforms/gridview/filtering/how-to/filter-on-enter
Workaround: private void radGridView1_ConditionalFormattingFormShown(object sender, EventArgs e) { ConditionalFormattingForm f = sender as ConditionalFormattingForm; if (f != null) { RadPropertyGrid radPropertyGridProperties = f.Controls["radPropertyGridProperties"] as RadPropertyGrid; radPropertyGridProperties.ItemFormatting += radPropertyGridProperties_ItemFormatting; radPropertyGridProperties.ItemFormatting += radPropertyGridProperties_ItemFormatting; } } private void radPropertyGridProperties_ItemFormatting(object sender, PropertyGridItemFormattingEventArgs e) { if (e.Item.Label=="CellFont") { e.Item.Label = "aaa"; } }
To reproduce: 1. Add a RadMultiColumnComboBox and populate it with data. 2. Set the DropDownStyle property of the control to DropDownList 3. Set the EditorControl.AllowSearchRow and the AutoSizeDropDownToBestFit properties to true . 4. When you open the drop down and try to use the search row (e.g. clicking over the arrow buttons), the drop down is closed. Workaround: public partial class RadForm1 : Telerik.WinControls.UI.RadForm { public RadForm1() { InitializeComponent(); this.radMultiColumnComboBox1.EditorControl.AllowSearchRow = true; this.radMultiColumnComboBox1.DropDownStyle = Telerik.WinControls.RadDropDownStyle.DropDownList; this.radMultiColumnComboBox1.DropDownClosing += RadMultiColumnComboBox1_DropDownClosing; } private void RadMultiColumnComboBox1_DropDownClosing(object sender, RadPopupClosingEventArgs args) { Point position = this.radMultiColumnComboBox1.EditorControl.PointToClient(Cursor.Position); Telerik.WinControls.RadElement searchElement = this.radMultiColumnComboBox1.EditorControl.ElementTree.GetElementAtPoint(position); if (searchElement != null) { GridSearchCellElement parent = searchElement.FindAncestor<GridSearchCellElement>(); if (parent != null) { args.Cancel = true; } } } }