2013-11-22 76 views
0

我正在jqplot圖表上工作。 直到圖表的數據被逗號分割我在渲染圖表時沒有遇到任何問題。如何在jquery中拆分數組

之前將動態數據導入圖表我有腳本

<script type="text/javascript"> 
     $(document).ready(function() { 

      var data = [ 
    ['Test1', 230], ['Test2', 330], ['Test3', 430], ['Test4', 530], ['Test5', 630] 
    ]; 

      var plot1 = jQuery.jqplot('chart1', [data], 
    { 
     seriesDefaults: { 
      renderer: jQuery.jqplot.PieRenderer, 
      rendererOptions: { 
       showDataLabels: true 
      } 
     }, 
     legend: { show: true, location: 'e' } 
    } 
); 
     }); 
    </script> 

,它看起來喜歡 -

enter image description here

將動態數據 -

@model List<Myapplication.models.mytable> 

@for (int i = 0; i < Model.Count; i++) { 
    <script type="text/javascript"> 
     $(document).ready(function() { 

      var data = [ 
    ['@Model[i].AccountHead', '@Model[i].AccID'] 
    ]; 

      var plot1 = jQuery.jqplot('chart1', [data], 
    { 
     seriesDefaults: { 
      renderer: jQuery.jqplot.PieRenderer, 
      rendererOptions: { 
       showDataLabels: true 
      } 
     }, 
     legend: { show: true, location: 'e' } 
    } 
); 
     }); 
    </script> 
} 

現在它之後巴解組織圖表TS但重疊的每個條目,它看起來weird-

enter image description here

的一個方式是通過分割「逗號」的數據陣列,所以我嘗試 -

var data = [ 
     ['@Model[i].AccountHead', '@Model[i].AccID'] 
     ]; 

     var splitdata= data.split(','); 
var plot1 = jQuery.jqplot('chart1', splitdata, 
    { 
     seriesDefaults: { 
      renderer: jQuery.jqplot.PieRenderer, 
      rendererOptions: { 
       showDataLabels: true 
      } 
     }, 
     legend: { show: true, location: 'e' } 
    } 
); 
     }); 

但在陣列分裂不適合我。

如何在jQuery中分割數組或使用其他方式進行分割?

我的應用程序是在ASP.NET MVC4 Razor中構建的。

+0

您只向圖表傳入了一個條目......您的第二次嘗試應該不起作用,因爲數組沒有拆分方法。 –

+0

我認爲這是becoz數據只包含Holder值... –

+0

您正在循環數據,因此它總是覆蓋值..這就是爲什麼它顯示的餅圖僅由Holder值填充。 –

回答

0

數組定義錯誤。

嘗試這樣的嘗試:

var splitdata= []; 
splitdata[ 0 ] = '@Model[i].AccountHead'; 
splitdata[ 1 ] = '@Model[i].AccID'; 

或..

var splitdata= new Array('@Model[i].AccountHead', '@Model[i].AccID'); 
var splitdata= [ '@Model[i].AccountHead', '@Model[i].AccID' ]; 

希望它有助於..

1
<script type="text/javascript"> 
     $(document).ready(function() 
     { 
      pieData(); 
     }); 
      function pieData() 
    { 
     var data =[]; 
    for(int i = 0; i <@Model.Count; i++) 
    { 
    data.push(['@Model[i].AccountHead', '@Model[i].AccID']); 
    } 
     var plot1 = jQuery.jqplot('chart1', [data], 
     { 
    seriesDefaults: { 
     renderer: jQuery.jqplot.PieRenderer, 
     rendererOptions: { 
      showDataLabels: true 
     } 
    }, 
    legend: { show: true, location: 'e' } 
    }); 
    } 
    </script> 

希望它爲你工作。

+0

你似乎做得很好,我還沒有擺脫重疊。即使我用'['header',3232]替換了動態數據''但我仍然得到第二個圖像。 – Manoj

+0

如果您只傳遞'標題',那麼它會顯示相同的結果。請用[['header',10],['header1',20]]替換數據] –