Разбивка на стороне клиента в ASP.NET GridView - PullRequest
1 голос
/ 15 декабря 2011

У меня есть клиент, который хочет вернуть ОГРОМНЫЙ запрос от веб-службы и не собирается сдавать бюджет. Они непреклонны в том, что запрос должен иметь возможность вернуть абсолютно все, и они также не позволят нам выполнять какую-либо пейджинговую работу на стороне сервера.

У нас он работает так, что он прекрасно возвращает все данные, и мы отображаем его в ASP.NET GridView. Чтобы ускорить рендеринг огромной сетки, мы решили реализовать пейджинг на стороне клиента, но я не совсем уверен, как это сделать.

В настоящее время мы храним все данные в ViewState, а затем выполняем постраничную сортировку на основе этого, чтобы избежать повторного попадания на сервер.

Однако при настройке по умолчанию при попытке выбрать любую страницу, кроме первой, возвращается ошибка 404. Я предполагаю, что это потому, что время ожидания при попытке отправить огромный набор данных через ViewState.

Есть ли какой-нибудь способ вернуть набор данных, а затем выполнить всю подкачку и сортировку всего на клиенте без необходимости какой-либо обратной отправки? Или есть какой-то другой способ сделать это, о котором мы не подумали? (кроме подкачки на стороне сервера. Мы бы ЛЮБИМО делать это так, потому что это, очевидно, правильный путь, но клиент не сдвинется с места ...)

РЕДАКТИРОВАТЬ: Я хотел бы придерживаться элемента управления ASP.NET GridView, если это вообще возможно. Мы нашли несколько разных опций, таких как jQuery и тому подобное, но нам нужно многое изменить, если мы перейдем на другой тип управления. Поэтому я хотел бы избежать изменения этого, если это вообще возможно.

Ответы [ 3 ]

3 голосов
/ 15 декабря 2011

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

http://www.codeproject.com/KB/webforms/clientside_gridviewpaging.aspx

2 голосов
/ 15 декабря 2011

Мы столкнулись с ситуациями, когда само Viewstate становится проблемой производительности, и нам пришлось искать способы решения подобной ситуации ...

Ваши варианты сильно зависят от некоторых деталей, которые не включены в вопрос.

Например? Как часто меняются данные из веб-сервиса? Вы можете выполнить одно из следующих действий:

  • Сохранять результаты в Cache или Session (не очень хорошая идея, если результаты такие большие ...)
  • Сериализация результата в файл XML и чтение из него во время подкачки
  • Периодически импортируйте данные в базу данных SQL или во временную таблицу в базе данных SQL с некоторым идентификатором для привязки данных к пользователю.
0 голосов
/ 15 декабря 2011

Мне повезло, используя плагин jquery tablesorter.Это дает несколько отличных вариантов.

http://tablesorter.com/docs/

...