有没有办法在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的变量?
答案 0 :(得分:1)
您可以将变量名称连接在一起并“eval”它。
答案 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);
}