首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >reportviewer.LocalReport.GetTotalPages()返回0或错误

reportviewer.LocalReport.GetTotalPages()返回0或错误
EN

Stack Overflow用户
提问于 2012-06-05 04:35:11
回答 2查看 2.5K关注 0票数 1

我使用了一个用户控件,并添加了我的报表查看器和自定义工具栏。我也想为它创建一个自定义导航,但由于某些原因,当我想要检查总页面以决定是否显示导航按钮时,它要么返回0,要么返回"This表达式导致副作用,将不会被求值“错误。

我的想法已经用完了,不知道从哪里开始..

代码语言:javascript
复制
<rsweb:reportviewer 
ID="rvReports" 
runat="server" ShowToolBar="False"
SizeToReportContent="True" AsyncRendering="false" />

代码隐藏:

代码语言:javascript
复制
rds = new Microsoft.Reporting.WebForms.ReportDataSource("dsName", myclasstoload());     
rvReports.LocalReport.DataSources.Add(rds);
rvReports.PageCountMode = PageCountMode.Actual;
rvReports.LocalReport.Refresh();
rvReports.DataBind();


if (rvReports.LocalReport.GetTotalPages() > 1)
{
 liFirst.Visible = true;
 liPrevious.Visible = true;
 liNext.Visible = true;
 liLast.Visible = true;
}

这都是在我的用户控件(.ascx)中的数据绑定事件上实现的。任何帮助都是非常感谢的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-12 16:01:31

这个msdn question可能就是您的答案,只有在报表呈现之后,才能调用GetTotalPages()方法。相关的引述:

在呈现报表的第一页之前,报表服务器不会计算总页数。在ASP.Net事件PreRender之前,ReportViewer不会向服务器请求页面呈现。如果在触发ReportViewer.PreRender事件之后将GetTotalPages调用移动到某个点,则应该会获得所需的行为。

另请参阅ASP.NET Page Lifecycle以供参考。

票数 1
EN

Stack Overflow用户

发布于 2018-02-17 03:57:29

为了获得适合我的页面,我必须以pdf格式呈现报表,然后使用Itextsharp库中的pdfreader类来获取总页面

代码语言:javascript
复制
var bytes=viewer.Render("PDF");
PdfReader reader = new PdfReader(bytes);
var pageCount = reader.NumberOfPages

如果您想要以pdf格式呈现您的rdlc,这将非常有效。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10887981

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档