Hi,
I am using RadControls for WinForms Q3 2009 SP1
I created two UserControls each one has a RadGridView in it. i.e. AListControl and BListControl.
Each RadGridView is bounded to a DataSource which list objects of type A and B.
When I use the controls separately (as I should) it works fine.
Now I try to use the RadGridView of object B as a ChildGridViewTemplate of A.
To avoid recreating the whole grid definition I use the following in AListControl constructor:
I also added a menu item in the context menu that sets the DataSource of bListControl.radGridViewB.MasterGridViewTemplate.
When I set the DataSource the application fails with the exception "Object reference not set to an instance of an object."
This is the callstack I got:
Telerik.WinControls.GridView.dll!Telerik.WinControls.UI.GridTraverser.IsRowVisible(Telerik.WinControls.UI.GridViewRowInfo rowInfo) + 0x32 bytes
Telerik.WinControls.GridView.dll!Telerik.WinControls.UI.GridTraverser.MoveForward() + 0x95 bytes
Telerik.WinControls.GridView.dll!Telerik.WinControls.UI.GridTableElement.UpdateScrollbars(bool resetValue) + 0x165 bytes
Telerik.WinControls.GridView.dll!Telerik.WinControls.UI.GridTableElement.Update_OrderChanged(Telerik.WinControls.UI.GridUINotifyAction action, Telerik.WinControls.UI.GridViewRowInfo[] rowInfos) + 0x12c bytes
Telerik.WinControls.GridView.dll!Telerik.WinControls.UI.GridTableElement.UpdateCore(Telerik.WinControls.UI.GridUINotifyAction action, Telerik.WinControls.UI.GridViewRowInfo[] rowInfos) + 0x74 bytes
Telerik.WinControls.GridView.dll!Telerik.WinControls.UI.GridViewTemplate.UpdateUI(Telerik.WinControls.UI.GridUINotifyAction action = SortingChanged, Telerik.WinControls.UI.GridViewRowInfo[] rowInfos) + 0x33f bytes
Telerik.WinControls.GridView.dll!Telerik.WinControls.Data.DataAccessComponent.InitializeSorting() + 0x109 bytes
Telerik.WinControls.GridView.dll!Telerik.WinControls.Data.DataAccessComponent.InitDataGrid() + 0x14e bytes
Telerik.WinControls.GridView.dll!Telerik.WinControls.Data.DataAccessComponent.Bind(object dataSource, string dataMember) + 0x32c bytes
Telerik.WinControls.GridView.dll!Telerik.WinControls.Data.DataAccessComponent.DataSource.set(object value) + 0x65 bytes
> InspectSims.exe!Inspector.AListControl.ShowBsClicked(object sender = {Telerik.WinControls.UI.RadMenuItem}, System.EventArgs e = {System.EventArgs}) Line 62 + 0x2b bytes C#
Can you tell me if this is the correct way to do this, or if there is another way to do this ?
Regards,
Ami
I am using RadControls for WinForms Q3 2009 SP1
I created two UserControls each one has a RadGridView in it. i.e. AListControl and BListControl.
Each RadGridView is bounded to a DataSource which list objects of type A and B.
When I use the controls separately (as I should) it works fine.
Now I try to use the RadGridView of object B as a ChildGridViewTemplate of A.
To avoid recreating the whole grid definition I use the following in AListControl constructor:
public AListControl() |
{ |
InitializeComponent(); |
// Create dummy BListControl |
BListControl bListControl = new BListControl(); |
// Add the B's MasterGridViewTemplate to A as a ChildGridViewTemplates |
this.radGridViewA.MasterGridViewTemplate.ChildGridViewTemplates.Add( |
bListControl.radGridViewB.MasterGridViewTemplate); |
// Add the relation |
GridViewRelation relation = new GridViewRelation(this.radGridViewA.MasterGridViewTemplate); |
relation.ChildTemplate = bListControl.radGridViewB.MasterGridViewTemplate; |
relation.RelationName = "A2B"; |
relation.ParentColumnNames.Add("Id"); |
relation.ChildColumnNames.Add("B.AId"); |
this.radGridViewA.Relations.Add(relation); |
} |
I also added a menu item in the context menu that sets the DataSource of bListControl.radGridViewB.MasterGridViewTemplate.
When I set the DataSource the application fails with the exception "Object reference not set to an instance of an object."
This is the callstack I got:
Telerik.WinControls.GridView.dll!Telerik.WinControls.UI.GridTraverser.IsRowVisible(Telerik.WinControls.UI.GridViewRowInfo rowInfo) + 0x32 bytes
Telerik.WinControls.GridView.dll!Telerik.WinControls.UI.GridTraverser.MoveForward() + 0x95 bytes
Telerik.WinControls.GridView.dll!Telerik.WinControls.UI.GridTableElement.UpdateScrollbars(bool resetValue) + 0x165 bytes
Telerik.WinControls.GridView.dll!Telerik.WinControls.UI.GridTableElement.Update_OrderChanged(Telerik.WinControls.UI.GridUINotifyAction action, Telerik.WinControls.UI.GridViewRowInfo[] rowInfos) + 0x12c bytes
Telerik.WinControls.GridView.dll!Telerik.WinControls.UI.GridTableElement.UpdateCore(Telerik.WinControls.UI.GridUINotifyAction action, Telerik.WinControls.UI.GridViewRowInfo[] rowInfos) + 0x74 bytes
Telerik.WinControls.GridView.dll!Telerik.WinControls.UI.GridViewTemplate.UpdateUI(Telerik.WinControls.UI.GridUINotifyAction action = SortingChanged, Telerik.WinControls.UI.GridViewRowInfo[] rowInfos) + 0x33f bytes
Telerik.WinControls.GridView.dll!Telerik.WinControls.Data.DataAccessComponent.InitializeSorting() + 0x109 bytes
Telerik.WinControls.GridView.dll!Telerik.WinControls.Data.DataAccessComponent.InitDataGrid() + 0x14e bytes
Telerik.WinControls.GridView.dll!Telerik.WinControls.Data.DataAccessComponent.Bind(object dataSource, string dataMember) + 0x32c bytes
Telerik.WinControls.GridView.dll!Telerik.WinControls.Data.DataAccessComponent.DataSource.set(object value) + 0x65 bytes
> InspectSims.exe!Inspector.AListControl.ShowBsClicked(object sender = {Telerik.WinControls.UI.RadMenuItem}, System.EventArgs e = {System.EventArgs}) Line 62 + 0x2b bytes C#
Can you tell me if this is the correct way to do this, or if there is another way to do this ?
Regards,
Ami