我有一个变量'multi',我在js文件中使用的名称相同。我需要在我的aspx页面中为变量设置一个值并将其传递给javascript文件。无法找到任何帮助。
aspx脚本代码
var itemdata = [];
var multi;
//var plot;
$(document).ready(function () {
$.ajax({
type: "POST",
url: "ChartBinder.asmx/BindChart",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (response) {
//alert(multi);
var resultObj = $.parseJSON(response.d);
multi = resultObj;
// alert(resultObj.Pie);
multi.Trend = resultObj.Trend;
//alert(multi.Trend);
$.getScript('Scripts/highcharts.src.js', function () {
DrawPie(resultObj.Pie);
DrawTrend(resultObj.Trend);
// do something here
});
},
error: function (msg) {
alert("Error");
}
});
});
js script
(function () {
var seriesCount = window.multi.Trend.length;
var newcolors = [];
for (i = 0; i < seriesCount; i++) {
newcolors[i] = multi.Trend[i].color;
}
})
答案 0 :(得分:0)
multi
在Global
范围内声明,因此可供您应用中的任何其他JS使用:
var multi; //global but must be included before code referencing it
(function () {
var multi; //local
})
根据您的意见:
....
$.getScript('Scripts/highcharts.src.js', function () {
DrawPie(resultObj.Pie);
DrawTrend(resultObj.Trend);
// do something here
DoWork();
});
...
function DoWork()
{
var seriesCount = window.multi.Trend.length;
var newcolors = [];
for (i = 0; i < seriesCount; i++) {
newcolors[i] = multi.Trend[i].color;
}
}
答案 1 :(得分:0)
在代码后面(.aspx页面)声明所需数据类型的变量
在Code背后(.aspx页面):
private string multi = "New";
public string Multi
{
get { return multi; }
}
在javascripts中:
var multi='<%=Multi%>';
//Do your stuffs here
答案 2 :(得分:0)
multi
应该在全局范围内,以便在您的include中使用,因为您已在Global
范围内声明它,即在功能块之外的文档顶部。
尝试更改
var seriesCount = window.multi.Trend.length;
到
var seriesCount = multi.Trend.length;
关闭主题:
您不需要执行multi.Trend = resultObj.Trend;
任务,因为您已完成multi = resultObj;
。