I am looking for the "correct" way to handle this as opposed to a workaround in the ASP.NET code behind. Here is the scenario:
I have a CSLA object which has a child collection as a property (e.g. think of a customer object with property phonenumbers, which is a collection). How on an ASP.NET page can I bind a gridview to the child collection of phonenumbers? I tried binding to a CslaDataSource, however seems like I can only bind the CslaDataSource to the main customer object, not the phonenumbers collection.
"CslaDataSource" suggests that you are likely using Csla v2.x
In that case you create SelectObject, InsertObject, UpdateObject and DeleteObject EventHandlers for you CslaDataSource. For example, if your CslaDataSource is named PhoneDataSource, you will have the following event handler for the SelectObject event:
Protected Sub PhoneDataSource_SelectObject(ByVal sender As Object, ByVal e As Csla.Web.SelectObjectArgs)
e.BusinessObject = Customer.PhoneCollection
Now when you set the gridview's DataSource to PhoneDataSource, the gridview will display the phone numbers. Similarly you will need to create the event handlers for the other three events so that you can send the inserts and updates to the database.
Copyright (c) Marimer LLC