WHen you do BusinessObject.Add(), does that clear out the business object and then add a new row? Or do I need to do BUsinessObject.Clear() first if I want to clear all the values out?
Just double checking.
Thanks,
Marcel
Just to make sure I got it - what is the recommened way to handle the following scenario?
I have a parent/child bo.
The user enters one parent record, and then he adds let's say 5 child records before he clicks finish (like with a wizard). For example I set up one company with 5 contacts. Now after adding the five contacts, the user discover that contact #3 shouldn't have been added, so he removes him from the list. Finally the user is satisfied with the result and he clicks finish and the parent/child records are saved to the database.
To add a new record I simply use the add method. What about deleting a record from that bo. Simply use delete? How will that affect the final save?
Again I appreciate your help, and your framework has already saved me a considerable amount of work.
1) You can move to the record that you want to delete (MoveAbsolute to the index) and call DeleteCurrentRow(). The business object will see that the record is in an Added state (not saved to the database) and just reject the changes on it which will dump it, leaving you with 4 records.
2) The other option is to move to the record (MoveAbsolute again) and call Undo() by passing the argument to indicate that you only want to undo the current row. This will reject the changes on the row and since the row has not been saved, it has the same effect as deleting it.
Now, your best bet it probably #1, because that way you can use the same delete action for deleting new records that aren't saved, yet, and deleting records that are already saved (those ones are marked for deletion for when Save() is called). If you use the Undo() method and it's a persisted record, it's just going to undo the changes you made since you retrieved it from the database.