ChartJS从字符串中添加数据

ChartJS Add data from string

本文关键字:添加 数据 字符串 ChartJS      更新时间:2023-09-26

我正试图用从后端获得的数据填充我的douhnut图表,但它不起作用。。

有人能告诉我我做错了什么以及如何修复吗?

var pieChartCanvas = $("#pieChart").get(0).getContext("2d");
var pieOptions = { ... };
var pieChart = new Chart(pieChartCanvas);
pieChart.Doughnut(PieData, pieOptions);

"PieData"出现问题。如果我在javascript中这样做:

var PieData =
  [
   {
     value: 400,
     color: "#f39c12",
     highlight: "#f39c12",
     label: "FireFox"
   }
  ];

一切都很好。

但我想从我的后端设置值:

var token2 = document
.querySelector('script[data-id="MyUniqueName"][data-token2]')
.getAttribute('data-token2');

with token2="{值:100,颜色:'#00a65a',突出显示:'#00a65a'、标签:'IE'}"

我试着在字符串中添加[],或者使var data=[token2],但什么都不起作用。

我不擅长javascript,所以也许有人知道我的答案。

编辑

我正在为我的网站使用ASP.NET/C#。我用来将数据提供给javascript的方法是:HTML页面:

<scrpt type='text/javascript' data-id="MyUniqueName" data-token2="<%=Data%>" src='<%=ResolveUrl("~/dist/js/pages/dashboard2.js")%>' ></script>

C#

private String _data = String.Empty;
protected String Data {
        get {
        return this._data;
        }
        set {
            this._data = value;
        }
    }
protected void Page_Load(object sender, EventArgs e) {
    Data = "{ value: 100, color: '#00a65a', highlight: '#00a65a', label: 'IE' } ";
}

我不得不将c#代码更改为:

Data = "{ &quot;value&quot;: &quot;100&quot;, &quot;color&quot;: &quot;#00a65a&quot;, &quot;highlight&quot;: &quot;#00a65a&quot;, &quot;label&quot;: &quot;IE&quot; } ";

我需要引用所有内容,但它不适用于'",我需要放置&quot

使用JSON将其转换为一个对象:

var PieData = JSON.parse(token2);

我真的不确定这是否是最好的解决方案,但目前它正在发挥作用。