ASP.NET Custom Paging - PullRequest
       27

ASP.NET Custom Paging

1 голос
/ 29 июля 2010

Как сохранить пользовательский пейджинг для динамических наборов результатов? (т. е.) на основе выбора 10 раскрывающихся списков моя хранимая процедура будет динамически генерировать набор результатов, но заполняет миллионы записей.

Ряд статически знает Число записей, обычная подкачка эффективна, но как этого добиться для динамически растущего набора результатов?

Проблема

Мне нужно привязать универсальный List к GridView, столбцы фиксированы, но число возвращаемых строк неизвестно, но без пользовательской подкачки страниц моему GridView потребовалось 30 минут для заполнения результата.

Ответы [ 2 ]

2 голосов
/ 29 июля 2010

Если возможно, вы должны использовать LINQ, поскольку расширяемые операции облегчают подкачку.

По сути, вы бы указали ObjectDataSource или LinqDataSource для своего GridView.

Тогда у вас будет метод IQueryable<T>, который принимает начальную позицию и количество строк для извлечения.

Затем вы используете Skip() и Take() для достижения простой подкачки.

Вот очень хорошая статья о том, как это сделать.

Помните, что Skip() и Take() - это методы, предоставляемые любому классу, который реализует IEnumerable. Таким образом, даже несмотря на то, что в приведенной выше статье для своего хранилища данных используется LINQ-SQL, пока ваш собственный DAL предоставляет коллекцию типа IEnumerable, вы можете использовать шаблон Skip and Take.

Надеюсь, это поможет.

0 голосов
/ 29 июля 2010

Простой способ сделать это на стороне сервера - использовать LINQ. Взял по методу .Take ().

...