C# fusionChart未使用Json和C加载动态数据#
我有下面的代码在代码背后C# fusionChart未使用Json和C加载动态数据#,c#,jquery,json,charts,fusioncharts,C#,Jquery,Json,Charts,Fusioncharts,我有下面的代码在代码背后 protected void Page_Load(object sender, EventArgs e) { hdndata.Value = ShowFusionChart(); } public string ShowFusionChart() { DataTable dt = new DataTable();
protected void Page_Load(object sender, EventArgs e)
{
hdndata.Value = ShowFusionChart();
}
public string ShowFusionChart()
{
DataTable dt = new DataTable();
dt = LoadGrid();
System.Web.Script.Serialization.JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
List<Dictionary<string, object>> rows = new List<Dictionary<string, object>>(); Dictionary<string, object> row;
foreach (DataRow dr in dt.Rows)
{
row = new Dictionary<string, object>();
foreach (DataColumn col in dt.Columns)
{
if (col.ColumnName.ToLower() == "linkname")
row.Add("label", dr[col]);
if (col.ColumnName.ToLower() == "countno")
row.Add("value", dr[col]);
}
rows.Add(row);
}
return serializer.Serialize(rows);
}
Public DataTable LoadGrid()
{
// This code block is generating a DataTable from database
}
在设计页面
<div id="chartContainer">FusionCharts XT will load here!</div>
<div id="chartContainer2"></div>
<script type="text/javascript" src="fusioncharts/fusioncharts.js"></script>
<script type="text/javascript" src="fusioncharts/themes/fusioncharts.theme.zune.js"></script>
<script type="text/javascript">
$(function () {
`enter code here`
alert($('#hdndata').val());// getting alert with Json Data.
FusionCharts.ready(function () {
var jdata ;
jdata = $('#hdndata').val();
//console.log(jdata);
var revenueChart = new FusionCharts({
type: "column2d",
renderAt: "chartContainer",
width: "500",
height: "300",
dataFormat: "json",
dataSource: {
"chart": {
"caption": "Asset Tracking Report",
"subCaption": "Microsite Report",
"xAxisName": "Assets",
"yAxisName": "Count",
"theme": "zune"
},
"data": jdata
}
});
revenueChart.render("chartContainer");
});
});
</script>
FusionCharts XT将在此处加载!
$(函数(){
`在此处输入代码`
警报($('#hdnda').val();//获取Json数据警报。
FusionCharts.ready(函数(){
var jdata;
jdata=$('hdnda').val();
//console.log(jdata);
var revenueChart=新的FusionCharts({
键入:“column2d”,
renderAt:“chartContainer”,
宽度:“500”,
高度:“300”,
数据格式:“json”,
数据源:{
“图表”:{
“标题”:“资产跟踪报告”,
“子选项”:“微型站点报告”,
“XaxiName”:“资产”,
“yAxisName”:“Count”,
“主题”:“zune”
},
“数据”:jdata
}
});
revenueChart.渲染(“图表容器”);
});
});
仍然没有填充该图表。没有显示错误。消息为“未找到要显示的数据”
如果我在“data”之后提供静态Json格式的数据:那么这就完美了
我的问题是如何使用动态数据运行图表?请帮我找出我的错误。谢谢大家 请注意,如果您的图表显示“无数据显示”消息,则可能是您的数据不包含任何可能由FusionCharts XT绘制的数据或不正确的数据格式 通过传递附加到JSON的“jdata”变量中的数据,可以正确呈现图表,就像我们测试代码一样
似乎问题可能是在从数据库获取数据并通过“jdata”变量传递到图表时引起的。请重新检查“$('#hdnda').val();”代码是否生成了需要传递给图表的正确数据。Hi Sanjukta,如果我在图表的数据部分传递Json数据,那么图表准备得很好。另外,我检查了hiddenfield是否填充了数据库中的JSON数据,我可以从这行代码中看到hiddenfield的值。警报($('hdnda').val());我已经将数据转换成JSON,然后将变量转换成图表。jdata=JSON.parse($('hdnda').val());这很有效。谢谢大家。
<div id="chartContainer">FusionCharts XT will load here!</div>
<div id="chartContainer2"></div>
<script type="text/javascript" src="fusioncharts/fusioncharts.js"></script>
<script type="text/javascript" src="fusioncharts/themes/fusioncharts.theme.zune.js"></script>
<script type="text/javascript">
$(function () {
`enter code here`
alert($('#hdndata').val());// getting alert with Json Data.
FusionCharts.ready(function () {
var jdata ;
jdata = $('#hdndata').val();
//console.log(jdata);
var revenueChart = new FusionCharts({
type: "column2d",
renderAt: "chartContainer",
width: "500",
height: "300",
dataFormat: "json",
dataSource: {
"chart": {
"caption": "Asset Tracking Report",
"subCaption": "Microsite Report",
"xAxisName": "Assets",
"yAxisName": "Count",
"theme": "zune"
},
"data": jdata
}
});
revenueChart.render("chartContainer");
});
});
</script>