一、FusionCharts在服务器端导出图片
1.首先xml数据上,要设置
exportEnabled="1"
exportAtClient="0"
exportAction="download"
exportHandler="FCExporter.aspx?exportfilename='+ encodeURIComponent('柱状图') +'"
2.然后在服务器端,改FCExporter.aspx的代码,处理图片保存。
private MemoryStream exportProcessor(string strFormat, string stream, Hashtable meta)
{
//可以修改此方法,调整图片在服务器上保存的路径和文件名。
}
<body>
<div id="chartdiv" align="center">
FusionCharts.
</div>
<div id="fcexpDiv">FusionCharts Export Handler Component</div>
<script type="text/javascript" src="../jquery.js"></script>
<script type="text/javascript" src="fusionCharts.js"></script>
<script type="text/javascript" src="highcharts.js"></script>
<script type="text/javascript" src="FusionChartsExportComponent.js"></script>
<script type="text/javascript" src="lib.js"></script>
<script type="text/javascript" language="javascript">
var serverSideExportSave_Data ='<chart yAxisName="Sales Figure" caption="Top 5 Sales Person" numberPrefix="$" useRoundEdges="1" bgColor="FFFFFF,FFFFFF" showBorder="0" exportEnabled="1" exportAtClient="0" exportAction="download" exportHandler="FCExporter.aspx?exportfilename='+ encodeURIComponent('柱状图') +'">\n\
<set label="Alex" value="25000" /> \n\
<set label="Mark" value="35000" /> \n\
<set label="David" value="42300" /> \n\
<set label="Graham" value="35300" /> \n\
<set label="John" value="31300" /> \n\
</chart>';
//Create the chart.
var myChart = new FusionCharts("swf/Column3D.swf", "myChartId", "400", "300", "0", "1");
myChart.setDataXML( serverSideExportSave_Data );
myChart.render("chartdiv");
myChart.addEventListener("Rendered", function () {
var obj=FusionCharts("myChartId").exportChart();
alert(obj);
} );
function ExportMyChart() {
myChart.exportChart();
}
</script>
</body>
二、动态更新图表,中文乱码问题
var serverSideExportSave_Data ='<?xml version="1.0" encoding="unicode"?>\n\
<chart yAxisName="GRID" caption="前5名业务员" numberPrefix="$" useRoundEdges="1" bgColor="FFFFFF,FFFFFF" showBorder="0" exportEnabled="1" exportAtClient="0" exportAction="download" exportHandler="FCExporter.aspx?exportfilename='+ encodeURIComponent('柱状图') +'">\n\
<set label="张三" value="29000" /> \n\
<set label="李四" value="35000" /> \n\
<set label="David" value="37500" /> \n\
<set label="Graham" value="35300" /> \n\
<set label="John" value="15300" /> \n\
</chart>';
var chart1=getChartFromId("myChartId");
chart1.setChartData(serverSideExportSave_Data,"xml");
//chart1.setDataXML(serverSideExportSave_Data);
chart1.render();
原来的方法setDataXML会导致中文乱码,查官方帮助,setDataXML已废弃,改为setChartData(),中文就不再乱码了。