我在 ReportViewer 中的交互式排序和分页遇到了一个奇怪的问题,我无法弄清楚。我在 aspx 页面中使用本地报表定义和 ReportViewer 控件。我将 AsynchRendering 设置为 true。除了这个问题,一切似乎都很好。以下是重现问题的步骤:
(各种前的第1页) COL1 | COL2 一个 1 3 b 2
1) 在第 1 页上,按 COL1 升序排序 - 排序是正确的
(第 1 页) COL1 | COL2 一个 1 b 2 3
2) 导航到第 2 页 - 排序正确
(第2页) COL1 | COL2 d 4 5 f 6
3)按X列降序排序(这样做后它会自动返回到第1页) - 排序是正确的
(第 1 页) COL1 | COL2 26 是 25 w 24
4) 再次导航到第 2 页 - 排序不正确;数据仍然按升序排序,就好像第 2 页上的排序点击从未发生过一样
(第2页) COL1 | COL2 d 4 5 f 6
其他奇怪的事情:
- 如果我从第 1 页导航到除第 2 页之外的任何其他页面,则排序顺序是正确的,如果我从除第 1 页之外的任何其他页面导航到第 2 页,则排序顺序是正确的。
- 如果我将 AsyncRendering 设置为 false,我根本没有这个问题。我需要将 AsyncRendering 设置为 true。
- 这个问题只发生在 IE6 和 IE7 中。我不会发生在 Firefox 或 Chrome 中。
- 这是最奇怪的一个=> 这个问题只发生在我部署到 Web 服务器之后。如果我在我的计算机上从 Visual Studio 2008 开发服务器运行它,那么一切正常,无一例外。
这是一个问题,因为我工作的公司几乎只使用 IE6/IE7,这种排序功能是必需的,如果我不使用 AsyncRendering,页面就会太慢。
对此的任何帮助将不胜感激。
(在我有足够的声誉能够发表评论之前,我做出的回答的评论):关于这件事我注意到了其他一些事情。使用提琴手,我观察了每次排序点击和导航点击的http请求/响应,我注意到从第1页导航到第2页时没有http GET请求。所有其他导航点击和排序点击发出GET请求,然后html 会使用相应的响应进行刷新。如果在发生另一次排序后从第 1 页导航到第 2 页时没有 GET 请求,则页面不会刷新到当前排序顺序。这对我来说似乎是一个 ReportViewer AJAX 错误......