0

ReportViewerツールバーの置き換えを検討しています。今発見をしているだけです。レポートビューアのJavaScriptAPIについて知っています。これには、ページネーションコントロールの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();
}

入力される2つのフィールドは、ASP.NETポストバック用にデフォルトで作成されるものです。

ASP.NETページのOnLoadイベントのサーバー側C#:

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