2

我在我的页面中添加了一个报告查看器:

   <asp:ScriptManager ID="Scriptmanager1" runat="server"></asp:ScriptManager>
    <rsweb:ReportViewer ID="repViewer" runat="server" Width="100%" Height="100%" OnDrillthrough="repViewer_Drillthrough"></rsweb:ReportViewer>

报告加载正常,但是当我单击钻取列(链接)时,报告似乎重新加载(报告的导航按钮被禁用并再次启用),但就是这样,不会触发 OnDrillthrough 事件(断点是还没到)。

我究竟做错了什么 ?

编辑

在玩了更多控制之后,我注意到实际上没有任何效果。Paging、Searching、DrillingThrough,你的名字......报告被禁用并再次启用,但它总是显示相同的数据集(基本上是第一页......)

还有一件事。我的网站上没有本地报告。我使用 ReportViewer 访问远程报告。代码隐藏如下:

  protected void Page_Load(object sender, EventArgs e)
    {

        repViewer.ProcessingMode = Microsoft.Reporting.WebForms.ProcessingMode.Remote;
        repViewer.ServerReport.ReportServerUrl = new Uri("http://mssql/reportserver");
        repViewer.ServerReport.ReportPath = "/Domiciliations/myreport";
        repViewer.ServerReport.Refresh();
    }
4

1 回答 1

3

我刚刚发现了问题。每次页面加载时,您都会重新绑定报表并擦除任何其他状态更改。您应该仅在页面未回发时对其进行初始化。试试这个:

protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack())
    {
        repViewer.ProcessingMode = Microsoft.Reporting.WebForms.ProcessingMode.Remote;
        repViewer.ServerReport.ReportServerUrl = new Uri("http://mssql/reportserver");
        repViewer.ServerReport.ReportPath = "/Domiciliations/myreport";
        repViewer.ServerReport.Refresh();
    }
}
于 2013-09-06T18:54:56.020 回答