2015-03-25 3 views
2

У меня есть код ниже кода.fusionChart не загружается динамическими данными с использованием Json и C#

 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 
    } 

Я имею следующие выборочные данные в мою скрытое 'hdndata', как

[{"label":"Products","value":88},{"label":"Documents","value":77},{"label":"Videos","value":58}] 

На странице Design ......

<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>  

Еще Диаграмма не населен. Ошибка не отображается. Сообщение «Нет данных для отображения».

Если я предоставил статические данные формата Json после «данных»: тогда это работает отлично.

Вопрос: Как запустить диаграмму с динамическими данными? Пожалуйста, помогите мне найти мои ошибки. Спасибо вам всем.

ответ

0

Обратите внимание, что если ваша диаграмма показывает сообщение «Нет данных для отображения», возможно, ваши данные не содержат данных, которые могут быть построены с помощью FusionCharts XT или неправильного формата данных.

Диаграмма отображается правильно, передавая данные в переменной «jdata», добавленной к JSON, так как мы проверили ваш код.

Похоже, что проблема может возникнуть при извлечении данных из базы данных и переходе на график с помощью переменной «jdata». Пожалуйста, повторите проверку, '' $ ('# hdndata'). Val(); " код генерирует правильные данные, которые необходимо передать на диаграмму.

+0

Hi Sanjukta, Если я передаю данные Json в части данных диаграммы, тогда график готовится отлично. Кроме того, я проверил, что hiddenfiled - это география, заполненная данными JSON из базы данных, я вижу значение скрытого поля из этой строки кода. оповещения ($ ('# hdndata') Вал().); –

+1

Я преобразовал данные в JSON, а затем использовал переменную в диаграмме. jdata = JSON.parse ($ ('# hdndata'). Val()); Это работает. Благодарим всех. –

Смежные вопросы