У меня возникла странная проблема с интерактивной сортировкой и разбиением по страницам в ReportViewer, которую я не могу понять. Я использую определение локального отчета и элемент управления ReportViewer на странице aspx. У меня для AsynchRendering установлено значение true. Вроде все работает нормально, кроме этой проблемы. Вот шаги, чтобы воспроизвести проблему:
(page 1 before all sorts) COL1 | COL2 a 1 c 3 b 2
1) На странице 1 сортировка по возрастанию по COL1 - сортировка правильная
(page 1) COL1 | COL2 a 1 b 2 c 3
2) Перейдите на страницу 2 - сортировка правильная
(page 2) COL1 | COL2 d 4 e 5 f 6
3) Сортировка по убыванию по столбцу X (после этого он автоматически возвращается на страницу 1) - сортировка правильная
(page 1) COL1 | COL2 z 26 y 25 w 24
4) Снова перейдите на страницу 2 - сортировка неверна; данные по-прежнему сортируются в порядке возрастания, как если бы щелчок сортировки на странице 2 никогда не происходил
(page 2) COL1 | COL2 d 4 e 5 f 6
Другие странные вещи:
- Если я перехожу на любую другую страницу, кроме страницы 2, со страницы 1, порядок сортировки правильный, а если я перехожу на страницу 2 с любой другой страницы, кроме страницы 1, порядок сортировки правильный.
- Если я установил для AsyncRendering значение false, у меня вообще не было бы этой проблемы. Однако мне нужно, чтобы для AsyncRendering было установлено значение true.
- Эта проблема возникает только в IE6 и IE7. Этого не бывает в Firefox или Chrome.
- Вот самый странный => эта проблема возникает только после развертывания на веб-сервере. Если я запускаю его с сервера разработки Visual Studio 2008 на моем компьютере, все без исключения работает отлично.
Это проблема, потому что корпорация, с которой я работаю, в значительной степени использует только IE6 / IE7, эта функция сортировки является обязательной, а страница слишком медленная, если я не использую AsyncRendering.
Любая помощь с этим будет очень признательна.
(комментарии к ответу, который я сделал до того, как у меня была достаточно репутации, чтобы иметь возможность комментировать): есть еще кое-что, что я заметил в том, что с этим происходит. используя скрипач, я наблюдал http-запрос / ответы при каждом щелчке сортировки и щелчке навигации, и я заметил, что при переходе со страницы 1 на страницу 2 нет запроса HTTP GET. все остальные щелчки навигации и щелчки сортировки делают запрос GET, а затем html обновится с соответствующим ответом. если нет запроса GET при переходе со страницы 1 на 2 после того, как произошла другая сортировка, то страница не будет обновлена до текущего порядка сортировки. мне это кажется ошибкой ReportViewer AJAX ...