0

我正在考虑更换 ReportViewer 工具栏。现在只是在做发现。我知道报告查看器的 JavaScript api。这不包括用于分页控件的 API。

我已经在生成的 HTML 中进行了挖掘,并弄清楚了如何触发回发来进行分页。即使工具栏未显示,在 Javascript 中调用以下命令也有效。

__doPostBack("ReportViewer1$ctl05$ctl00$Next$ctl00")

我不知道像这样回电的陷阱。因为传递给方法的字符串是输入按钮的名称。似乎名字可以改变。我也不知道 $ctl 的东西是什么意思。

我知道如何通过将交互式高度设置为零来让reportviewer 不分页报告。我现在只是在探索我所有的选择。

有没有更简单的方法在不显示 ReportViewer 工具栏的情况下进行分页?如果没有,触发回发的陷阱是什么?

4

1 回答 1

0

对此的最终解决方案是使用客户参数进行回发。

客户端JS:

function loadPage(pageNumber) {
    $('#__EVENTTARGET').val('pagination');
    $('#__EVENTARGUMENT').val(<pageNumberToGoTo>);
    $('#form1').submit();
}

填充的两个字段是默认为 ASP.NET 回发创建的。

ASP.NET 页面中的服务器端 C# 的 OnLoad 事件:

if (Request.Form["__EVENTTARGET"] == "pagination")
{
    int pageNumber = int.Parse(Request.Form["__EVENTARGUMENT"]);
    _reportViewer.CurrentPage = pageNumber;
}  
于 2012-10-02T15:32:00.867 回答