This is a migrated thread and some comments may be shown as answers.

Hierarchical RadGridView does not show child template

3 Answers 340 Views
GridView
This is a migrated thread and some comments may be shown as answers.
Timotei
Top achievements
Rank 1
Timotei asked on 14 Jun 2017, 03:15 PM

Hi!

Can somebody point what I am doing wrong in this example of hierarchy relations in RadGridView: https://1drv.ms/u/s!Av62kAKK6E4Ugu4REmKw6AbGEcFTNw?

If the child template would create automatically the columns it would work fine, but some columns have to be invisible.

Thanks!

3 Answers, 1 is accepted

Sort by
0
Accepted
Dimitar
Telerik team
answered on 15 Jun 2017, 06:44 AM
Hi Timotei,

You need to set the relation like this:
grid.MasterTemplate.Templates.Add(_template);
 
var relation = new GridViewRelation(grid.MasterTemplate, _template);
relation.ChildColumnNames.Add("Details");
grid.Relations.Add(relation);

Do not set the data source of the child template. An example is available here: Object Relational Hierarchy Mode.

I hope this will be useful. Let me know if you have additional questions.

Regards,
Dimitar
Progress Telerik
Try our brand new, jQuery-free Angular 2 components built from ground-up which deliver the business app essential building blocks - a grid component, data visualization (charts) and form elements.
0
Timotei
Top achievements
Rank 1
answered on 16 Jun 2017, 12:29 PM

Thanks for your response!

I am getting a null reference exception when I click to expand the child template. I noticed that the exception is fired at OnMouseUp event.

Can you take a look to the stack trace and suggest a solution?

Here is the stack trace:

Object reference not set to an instance of an object. (Telerik.WinControls.GridView)

------------------------------
Program Location:

   at Telerik.WinControls.UI.GridTableElement.DpiScaleChanged(SizeF scaleFactor)
   at Telerik.WinControls.RadElement.DpiScaleChanged(SizeF scaleFactor)
   at Telerik.WinControls.RadElement.SetParent(RadElement parent)
   at Telerik.WinControls.RadElement.ChangeCollection(RadElement child, ItemsChangeOperation changeOperation)
   at Telerik.WinControls.RadElementCollection.OnInsertComplete(Int32 index, Object value)
   at System.Collections.CollectionBase.System.Collections.IList.Add(Object value)
   at Telerik.WinControls.UI.GridDetailViewRowElement.Initialize(GridViewRowInfo rowInfo)
   at Telerik.WinControls.UI.BaseVirtualizedContainer`1.InsertElement(Int32 position, IVirtualizedElement`1 element, T data)
   at Telerik.WinControls.UI.BaseVirtualizedContainer`1.UpdateElement(Int32 position, T data)
   at Telerik.WinControls.UI.ScrollableRowsContainerElement.UpdateElement(Int32 position, GridViewRowInfo data)
   at Telerik.WinControls.UI.BaseVirtualizedContainer`1.MeasureElements()
   at Telerik.WinControls.UI.BaseVirtualizedContainer`1.MeasureOverride(SizeF availableSize)
   at Telerik.WinControls.UI.ScrollableRowsContainerElement.MeasureOverride(SizeF availableSize)
   at Telerik.WinControls.RadElement.MeasureCore(SizeF availableSize)
   at Telerik.WinControls.RadElement.Measure(SizeF availableSize)
   at Telerik.WinControls.UI.RowsContainerElement.MeasureOverride(SizeF availableSize)
   at Telerik.WinControls.RadElement.MeasureCore(SizeF availableSize)
   at Telerik.WinControls.RadElement.Measure(SizeF availableSize)
   at Telerik.WinControls.Layouts.ContextLayoutManager.UpdateLayout()
   at Telerik.WinControls.UI.GridTableElement.UpdateOnRowExpandedCore(GridViewRowInfo row)
   at Telerik.WinControls.UI.GridTableElement.UpdateOnRowPropertyChanged(GridViewRowInfo row, GridPropertyChangedEventArgs e)
   at Telerik.WinControls.UI.GridTableElement.ProcessRowEvent(GridViewRowInfo row, GridViewEvent eventData)
   at Telerik.WinControls.UI.GridTableElement.Telerik.WinControls.UI.IGridViewEventListener.ProcessEvent(GridViewEvent eventData)
   at Telerik.WinControls.UI.GridViewEventProcessEntity.ProcessCollection(GridViewEvent gridEvent, PriorityWeakReferenceList list, GridEventProcessMode processMode)
   at Telerik.WinControls.UI.GridViewEventProcessEntity.ProcessEvent(GridViewEvent gridEvent)
   at Telerik.WinControls.UI.GridViewSynchronizationService.NotifyListeners(GridViewEvent gridEvent)
   at Telerik.WinControls.UI.GridViewSynchronizationService.FlushEvents()
   at Telerik.WinControls.UI.GridViewSynchronizationService.DispatchEvent(GridViewEvent gridEvent)
   at Telerik.WinControls.UI.GridViewSynchronizationService.DispatchEvent(GridViewTemplate template, GridViewEvent eventData, Boolean postUI)
   at Telerik.WinControls.UI.GridViewRowInfo.DispatchEvent(KnownEvents id, GridEventType type, GridEventDispatchMode dispatchMode, Object originator, Object[] arguments)
   at Telerik.WinControls.UI.GridViewRowInfo.OnPropertyChanged(PropertyChangedEventArgs args)
   at Telerik.WinControls.UI.GridViewDataRowInfo.OnPropertyChanged(PropertyChangedEventArgs e)
   at Telerik.WinControls.UI.GridViewHierarchyRowInfo.OnPropertyChanged(PropertyChangedEventArgs e)
   at Telerik.WinControls.UI.GridViewRowInfo.SetBooleanProperty(String propertyName, Int32 propertyKey, Boolean value)
   at Telerik.WinControls.UI.GridGroupExpanderCellElement.expander_RadPropertyChanged(Object sender, RadPropertyChangedEventArgs e)
   at Telerik.WinControls.RadPropertyChangedEventHandler.Invoke(Object sender, RadPropertyChangedEventArgs e)
   at Telerik.WinControls.RadObject.OnPropertyChanged(RadPropertyChangedEventArgs e)
   at Telerik.WinControls.RadElement.OnPropertyChanged(RadPropertyChangedEventArgs e)
   at Telerik.WinControls.RadComponentElement.OnPropertyChanged(RadPropertyChangedEventArgs e)
   at Telerik.WinControls.RadItem.OnPropertyChanged(RadPropertyChangedEventArgs e)
   at Telerik.WinControls.RadObject.RaisePropertyNotifications(RadPropertyValue propVal, Object oldValue, Object newValue, ValueSource oldSource)
   at Telerik.WinControls.RadObject.SetValueCore(RadPropertyValue propVal, Object propModifier, Object newValue, ValueSource source)
   at Telerik.WinControls.UI.ExpanderItem.set_Expanded(Boolean value)
   at Telerik.WinControls.UI.GridExpanderItem.set_Expanded(Boolean value)
   at Telerik.WinControls.UI.ExpanderItem.OnMouseUp(MouseEventArgs e)
   at Telerik.WinControls.RadElement.OnBubbleEvent(RadElement sender, RoutedEventArgs args)
   at Telerik.WinControls.RadElement.RaiseBubbleEvent(RadElement sender, RoutedEventArgs args)
   at Telerik.WinControls.RadItem.RaiseBubbleEvent(RadElement sender, RoutedEventArgs args)
   at Telerik.WinControls.RadElement.RaiseRoutedEvent(RadElement sender, RoutedEventArgs args)
   at Telerik.WinControls.ComponentInputBehavior.OnMouseUp(MouseEventArgs e)
   at Telerik.WinControls.RadControl.OnMouseUp(MouseEventArgs e)
   at Telerik.WinControls.UI.RadGridView.OnMouseUp(MouseEventArgs e)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at Telerik.WinControls.RadControl.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

 

Thanks!

0
Accepted
Dimitar
Telerik team
answered on 16 Jun 2017, 01:05 PM
Hi Timotei,

This is a known issue which is already resolved in the latest version. Workaround for your version is available here: UI for Winforms Feedback Portal - FIX. RadGridView - exception when the grid is not visible and the DPI scaling is larger than 100%.

I hope this will be useful. Let me know if you have additional questions.

Regards,
Dimitar
Progress Telerik
Try our brand new, jQuery-free Angular 2 components built from ground-up which deliver the business app essential building blocks - a grid component, data visualization (charts) and form elements.
Tags
GridView
Asked by
Timotei
Top achievements
Rank 1
Answers by
Dimitar
Telerik team
Timotei
Top achievements
Rank 1
Share this question
or