Dynamic Rows in ASP.NET Table with Data Persistance

I've spent a bit of time this week figuring out how to setup an ASP.NET user control that contains a table with a dynamic number of rows. This turns out to be not so simple if you want to persist the data in the table between postbacks to the server. Here is how I solved this issue...