singlepost

Проблема с сортировкой и постраничным выводом данных << На главную или назад  

Доброго времени суток!
У меня такая проблема: использую GridView с ObjectDataSource, реализовал постраничный вывод и сортировку, но при попытке отсортировать, например, на 2-й или 3-й странице, текущая страница теряется…т.е. в итоге получаем отсортированную первую страницу.
Может быть кто-то сталкивался с подобной проблемой?

40 ответов в теме “Проблема с сортировкой и постраничным выводом данных”

  1. 8
    Евгений Думанский ответил:

    #8 – да, именно так.
    Проблему уже решил, всем спасибо за участие :)
    Эта проблема описана в МСДН, там написано, что действительно при сортировке свойство PageIndex сбрасывается в ноль. Я вешаюсь на события Sorting и Sorted объекта GridView, в первом обработчике сохраняю в сессию текущую страницу, во втором – восстанавливаю – вроде работает))

  2. 7
    Валерий Волков ответил:

    т.е. сортирует он нормально, но после сортировки показывает не последнюю просматриваемую страницу, а перескакивает на первую. так?

  3. 6
    Борис Глебов ответил:

    Все зависит, от того как вообще был организован вот этот постраничный вывод.

    Без кода (а хотябы описания релаизиции) именно вашего вывода сложно что либо понять, в чем собсвтенно косяк.

    Напрмиер можно воспльзоваться одной из перегрузок метода Fill класса DataAdapter, которая как раз таки выполняет загрузку не всей таблицы с сервера, а только опредленное кол-во записей с определенной позиции.

    Если же вы имеете в свое расспоряжение уже заполненый записями DataTable, то тут навскидку могу предолжить решение взять второй DataTable который будет заполнен данными только n-й страницы.

    GriedView.DataSource = и тут как раз таки этот дататабле который заполенн данымиим только одного листа! И уже не какой проблемы с сортировкой именно этих данных возникнуть не должно.

    И опять таки все эти методы возможно вам не сколько не помогут, из за специфики вашей не известной задачи…

  4. 5
    Евгений Думанский ответил:

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

  5. 4
    Евгений Думанский ответил:

    Тут немного другая ситуация….
    я не работаю напрямую с SQL, вся работа идет через LINQ.
    И сортировка идет естественно на стороне сервера.
    Суть проблемы в том, что GridView как бы "забывает" текущую страницу когда нажимаешь на хидер колонки, т.е. при сортировке.

  6. 3
    Евгений Князев ответил:

    точно. Вся сортировка — на стороне сервака.
    SQL в зубы. Если данные не в СУБД изначально — преобразуй их в табличную форму (всё равно ведь делаешь), а потом засунь в какой-нить SQLite (SQL СУБД движок не требующий сервера для встраивания в небольшие приложения) или pglite (postgresql для встройки)

  7. 2
    Валерий Волков ответил:

    А код приведи плз сюда

  8. 1
    Дмитрий Акулинин ответил:

    Не сортируйте ничего на стороне клиента!

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.