报表服务使用ReportViewer进行交互式排序和分页问题

时间:2008-11-19 17:00:25

标签: sql-server reporting-services reporting report

我在ReportViewer中的交互式排序和分页遇到了一个奇怪的问题,我无法弄清楚。我在aspx页面中使用本地报表定义和ReportViewer控件。我将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

其他奇怪的事情:

  • 如果我导航到除第1页第2页以外的任何其他页面,则排序顺序正确,如果我从除第1页以外的任何其他页面导航到第2页,则排序顺序正确。
  • 如果我将AsyncRendering设置为false,我根本就没有这个问题。我需要将AsyncRendering设置为true。
  • 此问题仅发生在IE6和IE7中。我不会在Firefox或Chrome中发生。
  • 这是最奇怪的一个=>此问题仅在我部署到Web服务器后发生。如果我从我的计算机上的Visual Studio 2008开发服务器运行它,一切都完美无缺。

这是一个问题,因为我工作的公司几乎只使用IE6 / IE7,这种排序功能是必需的,如果我不使用AsyncRendering,页面太慢。

非常感谢任何帮助。

(在我有足够的声誉可以发表评论之前我的答案评论): 还有一些我注意到的事情发生了什么。使用fiddler,我看了每个点击和导航点击的http请求/响应,我注意到从第1页导航到第2页时没有http GET请求。所有其他导航点击和排序点击发出GET请求然后使用相应的响应刷新html。如果在发生另一次排序后从第1页导航到2时没有GET请求,则页面将不会刷新到当前排序顺序。这对我来说似乎是一个ReportViewer AJAX错误......

1 个答案:

答案 0 :(得分:1)

我在使用AsyncRendering方面遇到了问题,我的问题与您的问题完全不同,但也许这个链接可能对您有帮助。

尝试使用本文中提出的建议,从为我的问题工作的页面中删除xhtml文档类型。

[http://msdn.microsoft.com/en-us/library/ms252090(VS.80).aspx][1]

页面

[1]:http://the xhtml doctype