reportviewer中的ASP.NET DrillThrough事件

时间:2013-09-03 07:02:15

标签: asp.net reportviewer

我在页面中添加了一个reportviewer:

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

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

我做错了什么?

修改

在用控件玩了一下后,我注意到没有任何实际效果。分页,搜索,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();
    }

1 个答案:

答案 0 :(得分:2)

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

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();
    }
}