6

Web ページ (Microsoft.ReportViewer.WebForms) で SQL Reporting Services レポートを表示するためのビューアー コントロールを使用して、[レポートの表示] ボタンを移動できますか? デフォルトではレポートの右端に設定されています。つまり、ボタンが表示される前にスクロールしなければなりません。ウィンドウ幅に収まるレポートでは問題ありませんが、非常に幅の広いレポートではすぐに問題になります。

4

5 に答える 5

3

いいえ、ReportViewer コントロールの [レポートの表示] ボタンの位置を変更することはできません。

ただし、独自のカスタム レポート表示コントロールを作成できます。コントロールは、レポート パラメータのフィールドと、レポートを生成するためのボタンで構成されます。ユーザーがボタンをクリックすると、バックグラウンドでレポートを生成できます。レポートを PDF、HTML などとして表示できます。

于 2008-08-21T18:54:50.353 に答える
2

ボタンが右に押される理由は、パラメータのtdがwidth = "100%"であるためです。私は次のjqueryでこの問題を解決しています。パラメータtdの幅を1に変更するだけです。ブラウザは、要素のコンテンツの幅に合わせて幅を独自に拡張します。お役に立てれば。

<script type="text/javascript">
    $(document).ready(function() {
        $("#<%= ReportViewer1.ClientID %> td:first").attr("width", "1");
    });
</script>
于 2009-12-03T22:44:33.883 に答える
2

ちょっとしたハックですが、JavaScriptで動かすことができます。ReportViewer が生成する HTML を確認し、適切な JavaScript コードを記述してボタンを移動します。JavaScript を使用してボタンを非表示にしました (独自の [レポートの表示] ボタンが必要だったため)。生成された ReportViewer の HTML を操作する JavaScript コードは、.aspx ページの ReportViewer コントロールの後に配置する必要があります。ボタンを非表示にするためのコードを次に示します。これにより、何を行うかがわかります。

function getRepViewBtn() {
  return document.getElementsByName("ReportViewer1$ctl00$ctl00")[0];
}

function hideViewReportButton() { // call this where needed
  var btn = getRepViewBtn();
  btn.style.display = 'none';
}
于 2009-05-20T04:37:34.663 に答える
1

昨日この答えを探していたので、問題を解決するために思いついたことを投稿したいと思いました。私たちのレポートは幅広に戻ってきました。ボタンに到達するためにスクロールする必要がないように、コントロールの左側に「レポートの表示」ボタンを配置したかったのです。ボタンとターゲット テーブルの ID 名を見つけるために、レンダリングされたファイルのソースを調べる必要がありました。

ボタンを元の位置から引っ張って、日付ピッカーの下にあるテーブルの次の行にドロップする単純なカット アンド ペースト JavaScript 関数を作成しました。

function moveButton() {
  document.getElementById('ParameterTable_ctl00_MainContent_MyReports_ctl04').appendChild(document.getElementById('ctl00_MainContent_MyReports_ctl04_ctl00'));
        }

この関数は、レポート ビューアーの読み込みイベントで呼び出されます。

ScriptManager.RegisterStartupScript(Me, Me.GetType(), "moveButton", "moveButton();", True)

位置を調整するために、CSS ID を使用しました。

#ctl00_MainContent_MyReports_ctl04_ctl00 {
    margin: 0px 0px 0px 50px;
}
于 2014-12-02T19:56:14.220 に答える