Я согласен, лучший подход - это получать данные порциями, вызывая сохраненный процесс, который получает номер страницы и количество записей, которые вы хотите вернуть, и затем связывать записи с сеткой.
Если к сетке применяются фильтры, я бы также передал их в сохраненный процесс.
Я бы отключил VIEWSTATE в сетке данных, если вы все еще пропускаете много записей (скажем, более тысячи на страницу);на самом деле, если у вас слишком много записей и вы хотите, чтобы эта штука летела, я бы предпочел сочетание вызовов ajax с веб-службой для получения данных в сочетании с плагином jquery datatables, который я считаю фантастическим и довольно хорошо документированным. Вот ссылка.
Редактировать: Если вы используете подход jquery datatables / webservice, постарайтесь убедить людей не использовать IE версии <9. IE Javascript engine отстойв IE 6 и 7 и менее в IE8, но все еще довольно плохо по сравнению с FF, Chrome и т. д. </p>