我有一些 Javascript 代码,我想将其添加到我的页面 Default.aspx.cs 中。
我尝试了以下方法:
string sb = @" <script type='text/javascript'>
var chart;
var chartData = [{'year': 2005,'income': 23.5,'expenses': 18.1},
{'year': 2006,'income': 26.2,'expenses': 22.8},
{'year': 2007, 'income': 30.1, 'expenses': 23.9 },
{'year': 2008,'income': 29.5,'expenses': 25.1},
{'year': 2009,'income': 24.6,'expenses': 25}
];
AmCharts.ready(function () {
chart = new AmCharts.AmSerialChart();
chart.dataProvider = chartData;
chart.categoryField = 'year';
chart.startDuration = 1;
chart.plotAreaBorderColor = '#DADADA';
chart.plotAreaBorderAlpha = 1;chart.rotate = true;var categoryAxis = chart.categoryAxis;
categoryAxis.gridPosition = 'start';
categoryAxis.gridAlpha = 0.1;
categoryAxis.axisAlpha = 0;var valueAxis = new AmCharts.ValueAxis();
valueAxis.axisAlpha = 0;
valueAxis.gridAlpha = 0.1;
valueAxis.position = 'top';
chart.addValueAxis(valueAxis);
var graph1 = new AmCharts.AmGraph();
graph1.type = 'column';
graph1.title = 'Income';
graph1.valueField = 'income';
graph1.balloonText = 'Income:[[value]]';
graph1.lineAlpha = 0;
graph1.fillColors = '#ADD981';
graph1.fillAlphas = 1;
chart.addGraph(graph1);
var graph2 = new AmCharts.AmGraph();
graph2.type = 'column';
graph2.title = 'Expenses';
graph2.valueField = 'expenses';
graph2.balloonText = 'Expenses:[[value]]';
graph2.lineAlpha = 0;
graph2.fillColors = '#81acd9';
graph2.fillAlphas = 1;
chart.addGraph(graph2);var legend = new AmCharts.AmLegend();
chart.addLegend(legend); chart.creditsPosition = 'top-right';
chart.write('chartdiv');
});
</script>";
ScriptManager.RegisterStartupScript(this.Page,
this.GetType(), "MyFun1", sb, false);
该代码在直接添加到 aspx 页面时可以工作,但是当我尝试此操作并尝试任何其他代码时,我无法在我的页面上运行它。
我将从数据库中填充值。所以它必须是动态的
编辑:我解决了这个问题。我在页面上添加了一个标签并编写了这段代码
Label5.Text = sb;
最佳答案
问题是代码有注释。它会使一些 javascript 代码在渲染到浏览器时无效,因此请删除这些注释并重试。
为了进行调试,您可以尝试先将脚本渲染到Literal控件,然后在控制台中查看任何脚本错误。
string sb = @" <script type='text/javascript'>
var chart;
var chartData = [{ 'year': 2005, 'income': 23.5,'expenses': 18.1},
AmCharts.ready(function () {
chart = new AmCharts.AmSerialChart();
chart.dataProvider = chartData;
chart.categoryField = 'year';
chart.startDuration = 1;
chart.plotAreaBorderColor = '#DADADA';
chart.plotAreaBorderAlpha = 1;
chart.rotate = true;
var categoryAxis = chart.categoryAxis;
categoryAxis.gridPosition = 'start';
categoryAxis.gridAlpha = 0.1;
categoryAxis.axisAlpha = 0;
var valueAxis = new AmCharts.ValueAxis();
valueAxis.axisAlpha = 0;
valueAxis.gridAlpha = 0.1;
valueAxis.position = 'top';
chart.addValueAxis(valueAxis);
var graph1 = new AmCharts.AmGraph();
graph1.type = 'column';
graph1.title = 'Income';
graph1.valueField = 'income';
graph1.balloonText = 'Income:[[value]]';
graph1.lineAlpha = 0;
graph1.fillColors = '#ADD981';graph1.fillAlphas = 1;
chart.addGraph(graph1);
var graph2 = new AmCharts.AmGraph();
graph2.type = 'column';
graph2.title = 'Expenses';
graph2.valueField = 'expenses';
graph2.balloonText = 'Expenses:[[value]]';
graph2.lineAlpha = 0;
graph2.fillColors = '#81acd9';
graph2.fillAlphas = 1;
chart.addGraph(graph2);
var legend = new AmCharts.AmLegend();
chart.addLegend(legend);
chart.creditsPosition = 'top-right';
chart.write('chartdiv');
});
</script>";
ScriptManager.RegisterStartupScript(this.Page,
this.GetType(), "MyFun1", sb, false);
关于c# - 使用 C# 将 Javascript 添加到 ASPX 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24454262/