【问题标题】:passing parameters in javascript在javascript中传递参数
【发布时间】:2012-11-23 21:23:20
【问题描述】:

我在c# 中有一个firePie.aspx 页面,它只有一个按钮,点击它时执行此操作,

    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"] 不起作用,如果我写原始字符串,我的意思是,var pie1 = new RGraph.Pie('cvs'... 行中的 28,29,22 它可以工作,我认为出于任何原因javascript 无法识别此值,但QueryString["values"] 被正确捕获。你能帮帮我吗?

【问题讨论】:

  • 应该标记为c#, aspx...

标签: c# javascript asp.net parameters query-string


【解决方案1】:

你能从查询字符串中获取值吗?

我有一个 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")

看看有没有帮助

【讨论】:

    【解决方案2】:

    尝试删除 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);
        }
    

    【讨论】:

      猜你喜欢
      • 2021-01-09
      • 1970-01-01
      • 2017-03-29
      • 2017-10-20
      • 2015-09-05
      • 1970-01-01
      • 2012-11-19
      • 2011-03-30
      • 1970-01-01
      相关资源
      最近更新 更多