I am not sure how you are bindng your grid but you do need to use Advanced data-binding
for it as opposed to simple data-binding
. Then, you should call the grid's Rebind() method, not DataBind() when adding the new record. Now, when you click the Add Row button you should take the last item in the Grid or whatever index it has (the grid items are kept in the RadGrid1.Items collection), cast it to a GridDataItem object and as you have done, traverse the controls in each column and get the value of the corresponding field. Now that you have all the field values, construct a new DataRow, insert in the data table at the right place and call the grid's Rebind() method. Do note that the data table should be assigned to the grid's DataSource property only in the NeedDataSource event, so you should rework your data-binding logic accordingly.
the Telerik team
If you want to get updates on new releases, tips and tricks and sneak peeks at our product labs directly from the developers working on the RadControls for ASP.NET AJAX, subscribe to their blog feed