I've got an editor grid that the user may need to add a row to. I've seen the XML editor grid in the examples and really like the 'add plant' button there. The one item that I'm not sure how to solve is the user experience\expectation of when that row gets committed to the database.

If the user simply updates an existing cell, I would expect that gets stored in the database immediately. However the add a new row is somewhat tricky if all cells aren't allowed a null value in the database. Here are the options I've thought of:
  1. Add a new 'commit' button (to toolbar (whole table) or in another column(row only))
  2. After setting all [required] values for the row (not sure the best way to do this, but I'm assuming some combination of events would work)
  3. Dump the in-line editing and create an add window.
Has anyone found a the 'best' solution to this? I'm leaning towards figuring out #2 at this point, but it doesn't seem to be simple taking care of all use cases.