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 イベントはトリガーされません (ブレークポイントは届いていない)。

私は何を間違っていますか?

編集

コントロールでもう少し遊んだ後、実際には何も機能しないことに気付きました。ページング、検索、ドリルスルー、名前を付けます...レポートは無効になり、再び有効になりますが、常に同じデータセットが表示されます(基本的に最初のページ...)

もう一つ。私のウェブサイトにレポートがローカルにありません。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 に答える