如何在JavaScript中传递参数名称?

时间:2011-06-29 18:21:31

标签: javascript jquery

有没有办法在JavaScript中动态获取变量处理程序?我认为这没有意义,所以这就是我想要做的事情。

我正在使用JQuery Flot在我的网络应用中生成图表。一切正常,直到我在同一页面中有两个图表。

我使用c#从数据库中获取数据并将其转换为JavaScript数组,然后像这样写入页面。

HTML / C#:

@{
        KII.Models.JsonPerformGraphData items = new KII.Models.JsonPerformGraphData();

        foreach (KII.Models.PerformanceGraphItem item in Model.PerformanceGraphItems)
        {
            items.Add(item);
        }

        <script type="text/javascript">

      @Html.Raw("var pgdata"+Model.Id+" = ")  @Html.Raw(items.toJson()) ;

        </script>
    } 

然后,我在文档上调用一个方法来准备绘制图形

JavaScript的:

if ($(".PerformanceGraph")) {
        $(".PerformanceGraph").livequery(function () {
            //Display the graph for risk and reward.
            var options = { series: {
                bars: { show: true, barWidth: 0.45, align: "center" }
            },
                legend: {
                    show: true, position: "ne", backgroundOpacity: 0, container: $("#PerformanceGraphLegend")
                },
                multiplebars: true
            };


            var dataArray = $(this).attr('data-array');//I get the name of the variable as String.
            $.plot($(".PerformanceGraph"), pgdata, options);
        });
    } 
来自javascript的

pgdata必须与HTML / C#中的"var pgdata"+Model.Id+"匹配。

如何获取HTML / C#代码吐出到HTML的变量?

2 个答案:

答案 0 :(得分:1)

您可以将变量名称连接在一起并“eval”它。

http://www.w3schools.com/jsref/jsref_eval.asp

答案 1 :(得分:1)

为什么不是这样的?

<script type="text/javascript">
var pgdata = {};
@Html.Raw("pgdata["+Model.Id+"] = ")  @Html.Raw(items.toJson()) ;
</script>

然后在javascript中你只需迭代pgdata中的键:

for (k in pgdata) {
    $.plot($(".PerformanceGraph"), pgdata[k], options);
}