public interface UnsavedRecords
startEditingNew() or listEndEditAction:"next" allow editing records that have not been saved to the server.  These
 unsaved records are special in several ways: getRecord(rowNum) will return null, instead,
 getEditValues(rowNum) allows access to field values for the unsaved record DataSourceField.primaryKey value, they
 have limited functionality: they cannot be selected, and do not support ListGrid.showRecordComponents and certain other features. If you need to work with unsaved records and have all ListGrid features apply to them, this is usually a sign that you should re-think your UI for adding new records. Consider the following approaches - which works best will depend on the application:
If values for several fields are required before the record should be visible on other screens or to other users, you can add a field to the record to flag it as incomplete so that it is not shown on other screens. Alternatively, require certain fields to be entered via an external form or dialog before the record is added to the grid.
 Saving a new record and
 editing it can be done via DataSource.addData() followed by a call to ListGrid.startEditing() once the record
 has been saved. 
form instead, possibly in a modal Window - then unsaved records never need to be shown in the grid. 
 Similar to the approach above, this modal form might have only certain minimum fields to make a
 valid new record, then further editing could continue in the grid. clientOnly DataSource so that records can be
 saved immediately without contacting the server.  This is a good approach if several unsaved
 records need to be manipulated by multiple components before they are finally saved. DataSource.updateCaches() with an
 "add" DSResponse to cause a new record to be added to the grid due to automatic cache synchronization.  At this point the grid
 will believe the record exists on the server and it will be treated like any other saved
 record.  This means your server code will need to handle the fact that the ListGrid will submit
 "update" DSRequests for any subsequent edits. DataSource.setCacheData() as well as records added due to a call to DataSource.updateCaches().  Usually the
 best approach is to avoid this situation by editing such records in a form or other control
 until they are valid rather than showing invalid records in a grid.  However, if such records
 need to be considered invalid, one approach is to take field values and add them as editValues
 via ListGrid.setEditValues(). 
 At this point the ListGrid will consider the values as user edits and will validate them.