1

ボタンがあるだけのfirePie.aspxページがc#あり、クリックするとこれを行います。

    protected void Button1_Click(object sender, EventArgs e)
    {
        string cadenaValor, valores;
        cadenaValor = "Audi(28%)','BMW(29%)','Mercedes(22%)" ;
        valores = "28,29,22";
        Response.Redirect("pieChart.aspx?values="+cadenaValor+"&valores="+valores);
    }

パラメータはコンマで区切られた値を持つ文字列であり、この値をに渡したいpiechart.aspxので、関数でjavascriptそれらのパラメータをキャッチして円グラフを印刷します。コードpieChart.aspxは次のとおりです。

<body>
<canvas id="cvs" width="450" height="300">[No canvas support]</canvas>        
<form id="frm" method="get" >
        <script type ="text/javascript" >
            var pie1 = new RGraph.Pie('cvs', ['<%=this.Request.QueryString["valores"]%>']);
        pie1.Set('chart.radius', 100);
        pie1.Set('chart.tooltips', ['<%=this.Request.QueryString["values"]%>']);
        pie1.Set('chart.labels', ['<%=this.Request.QueryString["values"]%>']);
        pie1.Set('chart.strokestyle', 'white');
        pie1.Set('chart.linewidth', 5);
        pie1.Set('chart.shadow', true);
        pie1.Set('chart.shadow.blur', 10);
        pie1.Set('chart.shadow.offsetx', 0);
        pie1.Set('chart.shadow.offsety', 0);
        pie1.Set('chart.shadow.color', '#000');
        pie1.Set('chart.text.color', '#999');

        var explode = 20;

        function myExplode (obj)
        {
            window.__pie__ = pie1;

            for (var i=0; i<obj.data.length; ++i) {
                setTimeout('window.__pie__.Explode('+i+',10)', i * 50);
            }
        }

        if (RGraph.isOld()) {
            pie1.Draw();

        } else if (navigator.userAgent.toLowerCase().indexOf('firefox') >= 0) {
            RGraph.Effects.Pie.RoundRobin(pie1);

        } else {
            /**
            * The RoundRobin callback initiates the exploding
            */

            RGraph.Effects.Pie.RoundRobin(pie1, null, myExplode);
            RGraph.Effects.Pie.Implode(pie1);
        }
    </script>          

 </form>
</body>

QueryString["valores"]元の文字列、つまり 28,29,22 が機能する行に書いた場合、var pie1 = new RGraph.Pie('cvs'...何らかの理由javascriptでこの値を認識していないと思いますが、QueryString["values"]正しくキャッチされています。助けてください。

4

2 に答える 2

0

pieChart.aspxで追加の引用符を削除してみてください

<body>
<canvas id="cvs" width="450" height="300">[No canvas support]</canvas>        
<form id="frm" method="get" >
        <script type ="text/javascript" >
            var pie1 = new RGraph.Pie('cvs', [<%=this.Request.QueryString["valores"]%>]);
    pie1.Set('chart.radius', 100);
    pie1.Set('chart.tooltips', [<%=this.Request.QueryString["values"]%>]);
    pie1.Set('chart.labels', [<%=this.Request.QueryString["values"]%>]);
... 

コードビハインドに引用符を追加します

protected void Button1_Click(object sender, EventArgs e)
    {
        string cadenaValor, valores;
        cadenaValor = "'Audi(28%)','BMW(29%)','Mercedes(22%)'" ; //added here
        valores = "28,29,22"; //No quotes here
        Response.Redirect("pieChart.aspx?values="+cadenaValor+"&valores="+valores);
    }
于 2012-11-23T22:14:57.700 に答える
0

クエリ文字列から値を取得できますか?

クエリ文字列から値を取得する js 関数があります。

function getQueryVariable(variable) {
    var query = window.location.search.substring(1);
    var vars = query.split("&");
    for (var i=0;i<vars.length;i++) {
        var pair = vars[i].split("=");
        if(pair[0] == variable) {
            return pair[1];
        }
    }
    return(false);
}

あなたの場合のように関数を呼び出すことができgetQueryVariable("valores")ます。

これが役立つかどうかを確認してください

于 2012-11-23T21:31:11.167 に答える