You might be on the right track with #1. Then LinqDataSource.Inserted event uses the LinqDataSourceStatusEventArgs class and it has a Result Property. You should be able to cast it (to its table name) ...
The ASP.NET DataViews are powerful tools when coupled with a DataSource. But you can skip the DataSource and use the DataViews to handle displaying and updating any collection of objects you want, ...