Доброго времени суток!
У меня такая проблема: использую GridView с ObjectDataSource, реализовал постраничный вывод и сортировку, но при попытке отсортировать, например, на 2-й или 3-й странице, текущая страница теряется…т.е. в итоге получаем отсортированную первую страницу.
Может быть кто-то сталкивался с подобной проблемой?
14 июля 2008 в 17:00
#8 – да, именно так.
Проблему уже решил, всем спасибо за участие
Эта проблема описана в МСДН, там написано, что действительно при сортировке свойство PageIndex сбрасывается в ноль. Я вешаюсь на события Sorting и Sorted объекта GridView, в первом обработчике сохраняю в сессию текущую страницу, во втором – восстанавливаю – вроде работает))
14 июля 2008 в 16:00
т.е. сортирует он нормально, но после сортировки показывает не последнюю просматриваемую страницу, а перескакивает на первую. так?
14 июля 2008 в 15:03
Все зависит, от того как вообще был организован вот этот постраничный вывод.
Без кода (а хотябы описания релаизиции) именно вашего вывода сложно что либо понять, в чем собсвтенно косяк.
Напрмиер можно воспльзоваться одной из перегрузок метода Fill класса DataAdapter, которая как раз таки выполняет загрузку не всей таблицы с сервера, а только опредленное кол-во записей с определенной позиции.
Если же вы имеете в свое расспоряжение уже заполненый записями DataTable, то тут навскидку могу предолжить решение взять второй DataTable который будет заполнен данными только n-й страницы.
GriedView.DataSource = и тут как раз таки этот дататабле который заполенн данымиим только одного листа! И уже не какой проблемы с сортировкой именно этих данных возникнуть не должно.
И опять таки все эти методы возможно вам не сколько не помогут, из за специфики вашей не известной задачи…
14 июля 2008 в 15:00
код сильно большой и в разных частях проекта
14 июля 2008 в 14:05
Тут немного другая ситуация….
я не работаю напрямую с SQL, вся работа идет через LINQ.
И сортировка идет естественно на стороне сервера.
Суть проблемы в том, что GridView как бы "забывает" текущую страницу когда нажимаешь на хидер колонки, т.е. при сортировке.
14 июля 2008 в 11:04
точно. Вся сортировка — на стороне сервака.
SQL в зубы. Если данные не в СУБД изначально — преобразуй их в табличную форму (всё равно ведь делаешь), а потом засунь в какой-нить SQLite (SQL СУБД движок не требующий сервера для встраивания в небольшие приложения) или pglite (postgresql для встройки)
14 июля 2008 в 1:03
А код приведи плз сюда
14 июля 2008 в 0:01
Не сортируйте ничего на стороне клиента!