微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

asp.net – ReportViewer 2010不从代码加载数据源

我在ASP.NET中创建了一个带有简单RDLC报告的项目,当我在设计时使用sqlDataSource绑定报表的DataSource时,一切正常.但是,如果我删除绑定并尝试从代码设置DataSource,那么报告似乎永远不会停止加载.

我以前在WinForms应用程序上使用过这个并没有问题,但这是我第一次尝试在ASP.NET中做到这一点,没有运气.

这是我用于在Page_Load事件中设置DataSource的代码.正如我所说的使用相同的sqlDataSource,如果它绑定在.aspx页面中.

ReportViewer1.Reset()
ReportViewer1.ProcessingMode = ProcessingMode.Local
ReportViewer1.LocalReport.ReportPath = Server.MapPath("Report.rdlc")
ReportViewer1.LocalReport.DataSources.Clear()
ReportViewer1.LocalReport.DataSources.Add(New ReportDataSource("DataSet1",sqlDataSource1))
ReportViewer1.LocalReport.Refresh()

即使我直接在reportviewer控件中设置了报表,也只是将代码切换为…

ReportViewer1.LocalReport.DataSources.Clear()
ReportViewer1.LocalReport.DataSources.Add(New ReportDataSource("DataSet1",sqlDataSource1))
ReportViewer1.LocalReport.Refresh()

……它仍然是一样的.

此外,在加载报表时,在Visual Studio中,您可以看到正在不断生成大量脚本块(列表框不断增长):

在这种情况下,加载微调器正在中途转动,重新启动并重复.该页面没有重新加载.

有什么想法吗?

解决方法

好的,就像你发布问题后不久一样,你找到了解决方案.

解决方案是确保仅在页面不是回发时才执行DataSource的设置.简而言之,将代码块包装在:

If Not Page.IsPostBack Then

    <set datasource here>

End If

我想这是因为reportviewer的AJAX性质?如果有人能够阐明为什么会这样,我会有兴趣听到它.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐