我有一个FusionCharts库,我想用它来在C#Web应用程序中绘制图表。 创建图表(定位在一个单独的文件夹中的一些开销文件后)的代码是:使用ascx控件时重复的javascript代码
<script type="text/javascript" src="Charts/FusionCharts.js">
<script type="text/javascript"><!--
var myChart = new FusionCharts("Charts/Spline.swf",
"myChartId", "400", "300", "0");
myChart.setXMLUrl("Data.xml");
myChart.render("chartContainer");
// -->
</script>
现在我试图做的是包括用户控制范围之内的一段代码。但我希望能够选择传递一些参数,例如我希望使用的“Data.xml”以及高度和宽度。 我现在工作,但我目前的问题是,当我在页面中包含多个控件实例时,因为如果我检查我的项目页面的“查看源代码”代码,它会添加好两个组件,但javascript看起来是这样的:
<script type="text/javascript" src="Charts/FusionCharts.js">
<script type="text/javascript"><!--
var myChart = new FusionCharts("Charts/Spline.swf",
"myChartId", "400", "300", "0");
myChart.setXMLUrl("Data.xml");
myChart.render("chartContainer");
// -->
</script>
<script type="text/javascript" src="Charts/FusionCharts.js">
<script type="text/javascript"><!--
var myChart = new FusionCharts("Charts/Spline.swf",
"myChartId", "400", "300", "0");
myChart.setXMLUrl("Data.xml");
myChart.render("chartContainer");
// -->
</script>
它复制的代码,所以我的变量myChart,被复制和预期,只有一个图表的呈现方式。 解决此问题的最佳方法是什么?或者基本上包含在page_load中动态生成的JavaScript,我可以为每个控件操作?
感谢的OnPreRender提示,我想试试出。在其他项目中,是的,myChartId,400,300,Data.xml和chartContainer需要以受控方式进行更改,例如: – gorba 2013-02-22 20:00:03
例如,如果我在aspx页面中包含两个用户控件,我希望每个代码看起来像 'var myChart1 = new FusionCharts(“Charts/Spline.swf”, “myChartId1”,“400”,“300”,“0”); myChart1.setXMLUrl(“Data1.xml”); myChart1.render(“chartContainer1”); ' 和 \t'var myChart2 = new FusionCharts(“Charts/Spline.swf”, “myChartId2”,“400”,“300”,“0”); myChart2.setXMLUrl(“Data2.xml”); myChart2.render(“chartContainer2”);' – gorba 2013-02-22 20:03:28
如果您的用户控件为可更改的值声明公共属性,则可以使用'<%= ... %>'语法将它们插入到脚本中。 – 2013-02-22 20:37:36