I'll try enabling the viewstate this evening when I get home. I know I'm missing the first row, that's because there's a static header there so I don't care about that part. I wasn't thinking about the state... I just thought if I created the table dynamically on one postback, it'd be there on the next. Of course now I realize how this might not work. PS - thanks for the data caching article on Devhood!