| | | 
StrataFrame User
       
Group: StrataFrame Users Last Login: Today @ 3:58:27 PM Posts: 310, Visits: 450 |
| | I would like to use a master-detail grid view for my DevExpress grid, but still use a BO or a BusinessBindingSource for the DataSource. How do I setup the Master/Detail relationship in the BO so that it works in the grid correctly? It has to know somehow which fields to use in the master view and which in the detail. |
| | | | 
StrataFrame Developer

Group: StrataFrame Developers Last Login: 10/21/2008 9:20:58 AM Posts: 2,685, Visits: 1,887 |
| I think you can use the Master-Detail grid with multiple data sources, like a parent & child. There have been some more changes to the BusinessBindingSource so that it will support the ICurrencyManagerProvider interface better that might help you with configuring your grid.
www.bungie.net |
| | | | 
StrataFrame User
       
Group: StrataFrame Users Last Login: Today @ 3:58:27 PM Posts: 310, Visits: 450 |
| | The way that they show it working is that you set some kind of ChildRelations property on the DataTable that you are setting as the DataSource for the grid. This determines which columns are treated as master and which as detail on the DevExpress side. I'm having some trouble finding any kind of ChildRelations collection on the BO. |
| | | | 
StrataFrame User
       
Group: StrataFrame Users Last Login: Today @ 3:58:27 PM Posts: 310, Visits: 450 |
| | I've tried this but I get an error saying Cannot create a DataRelation if Parent or Child Columns are not in a DataSet. BusinessObject.CurrentDataTable.ChildRelations.Add( "ListRelation", CalcClientBO.CurrentDataTable.Columns("ClientKey"), ClientInfoBO.CurrentDataTable.Columns("ClientKey"))
grdList.DataSource = BusinessObject.CurrentDataTableAny ideas on anything else I can try? |
| | | | 
StrataFrame Developer

Group: StrataFrame Developers Last Login: 10/21/2008 9:20:58 AM Posts: 2,685, Visits: 1,887 |
| No, I'm not sure what else you can try... you might have to create your own DataSet object and add the CurrentDataTables from the business objects you want to include in the grid. Then, you should be able to display them in the grid, although, you will probably need to set the DataSet as the data source, not one of the business objects.
www.bungie.net |
| | | | 
StrataFrame User
       
Group: StrataFrame Users Last Login: Today @ 3:58:27 PM Posts: 310, Visits: 450 |
| Yep, here's what I ended up having to do to get it working:Dim ds As New DataSet Me.CalcClientBO.FillAll() Me.ClientInfoBO.FillAll()ds.Tables.Add(CalcClientBO.CurrentDataTable) ds.Tables.Add(ClientInfoBO.CurrentDataTable) ds.Relations.Add( "ListRelation", ds.Tables(0).Columns("ClientKey"), ds.Tables(1).Columns("ClientKey"), False)
grdList.DataSource = ds.Tables(0) grdList.LevelTree.Nodes.Add("ListRelation", gvListDtl) grdList.RefreshDataSource()It would be a lot easier if somehow the ParentRelationship set on the Parent/Child BO's could somehow create this relationship for you, so that you could still just set the BusinessBindingSource or the CurrentDataTable of the BO to the DataSource. |
| | | | 
StrataFrame Developer

Group: StrataFrame Developers Last Login: 10/21/2008 9:20:58 AM Posts: 2,685, Visits: 1,887 |
| The problem with the BOs being able to do this automatically, is that the DataTables have to belong to a DataSet in order to define the relationships on them.
www.bungie.net |
| |
|
|