0

棒グラフを作成するためにasp .netチャートコントロールを使用しています。私のaspxページでは、幅をパーセンテージで設定できません(パーセンテージで設定すると、実行時にピクセルでしか設定できないというエラーが発生します)。

チャートでクリックイベントを処理しています(さまざまなバーがクリック可能/ハイパーリンクです-クリックすると、XとYの値がコードビハインドのメソッドに送信されます)。

css でグラフの幅を 100% に設定しようとすると、グラフのサイズが変更されますが、ハイパーリンクの位置は同じままで、バーのハイパーリンクと実際に表示されるバーの位置が一致しなくなります。(私が思うに、この背後にある理由は、- asp グラフはブラウザーのイメージにすぎません-最終的に生成された html コードには、代わりに が含まれ、そのグラフのハイパーリンクは、グラフのさまざまな領域をハイパーリンクに保つための座標で定義されているためです。 )。css を使用すると、画像のサイズは変わりますが、ハイパーリンクは変わりません。

ASPチャートのサイズを維持したいのは、画像のサイズをさまざまな画面サイズに対応させたいからです。何をすべきか教えてください。助けていただければ幸いです。前もって感謝します。

4

1 に答える 1

1

これが役立つかどうかはわかりません。単純な JavaScript を使用して、ページ サイズのサイズに基づいてグラフィックのサイズを変更しました。スクリプトは、UpdatePanel を使用して、ウィンドウ サイズが 1024px より大きいかどうかを確認します。こちらのドキュメント

 <script type="text/javascript" language="javascript">
        function load() {
            Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
        }

        function EndRequestHandler() {
            $(document).ready(function () {
                scale();

            });
            $(window).resize(function () {
                scale();
            });
            function scale() {
                var wi = $(window).width();
                if (wi >= 1024) {
                    var w_wi = $("#ChartID").width();
                    var w_he = $("#ChartID").height();
                    var rpt = w_he / w_wi;
                    $("#ChartID").css("width", $(window).width());
                    $("#ChartID").css("height", wi * rpt);
                } else {
                    scaleDefault();
                }
            }
            function scaleDefault() {

                var wi = $(window).width();
                    var w_wi = $("#ChartID").width();
                    var w_he = $("#ChartID").height();
                    var rpt = w_he / w_wi;
                    $("#ChartID").css("width", 1024);
                    $("#ChartID").css("height", 1024 * rpt);
            }

        }
        $(function () {
            EndRequestHandler();
        });

    </script>
于 2016-07-12T09:12:35.647 に答える