如何从chart.js的html表中动态添加元素
How to add the elements dynamically from the html table for chart.js
有人能帮助解决这个问题吗?
我正在使用chart.js将图表开发到我的asp.net mvc C#应用程序中。
问题是我无法将html表中的元素动态添加到图表中。
<canvas id="myChart" width="600" height="400"></canvas> //html5 canvas
<script type="text/javascript">
var ctx = document.getElementById("myChart").getContext("2d");
var data = {
datasets: [
{
fillColor: "rgba(223,104,27,0.5)",
strokeColor: "rgba(220,220,220,1)",
data: getcountdata1()
},
{
fillColor: "rgba(151,187,205,0.5)",
strokeColor: "rgba(151,187,205,1)",
data: getcountdata2()
}]
myNewChart = new Chart(ctx).Line(data, options);
上面的操作很好,因为在数据集中,我对数据集中的元素数量进行了硬编码,但实际上这应该检查HTML表并从表中获取数据。
现在的问题是,我如何使数据集根据表中的行数获得动态值?
例如,我编写了一个Javascript函数(我尝试了以下coed):
var data:
{
datasets: getdata()
}
function getdata()
{
rows = document.getElementById('tblresult').getElementsByTagName('tbody')[0].getElementsByTagName('tr').length;
for(i=0;i<rows;i++)
{
datasetdata[i] = [
{
fillColor: getrandomfillcolor(),
strokeColor: getrandomstrokecolor(),
data: getcountdata()
}]
}
function getrandomfillcolor()
{
}
function getrandomstrokecolor()
{
}
function getcountdata()
{
}
return datasetdata
}
我试了好几次,但都没能找到解决办法。
您需要将每一行传递给getcountdata()
函数
rowsDomElements = document.getElementById('tblresult').getElementsByTagName('tbody')[0].getElementsByTagName('tr');
for(i=0;i<rowsDomElements.length;i++)
{
datasetdata[i] = [
{
fillColor: getrandomfillcolor(),
strokeColor: getrandomstrokecolor(),
data: getcountdata(rowsDomElements[i])
}]
}
function getcountdata(row)
{
//create data as needed
}
相关文章:
- 如何在Google柱状图中动态添加行/列
- 使用jQuery动态添加表并在其中动态添加行
- 如何使用Angular动态添加iframe-src
- 如何向JSON数组动态添加属性
- 动态添加通过json创建的选择项
- 使用jQuery根据动态生成的html动态添加html
- 使用.on动态添加jquery/js不知道的html元素
- JS动态添加字段-删除按钮不起作用
- 动态添加AngularJS脚本
- 将表行动态添加到表或tbody元素中
- jQuery-通过AJAX调用动态添加具有值的表单元格
- 将特定属性动态添加到元素中
- 在highcharts.js中向点弹出窗口动态添加文本
- 如何在Angular.js中循环动态添加Fields并获取数据并将其发送到服务器
- 使用jQuery动态添加onClick事件
- 如何在Opencart中动态添加JavaScript
- 剑道UI下载列表:如何动态添加新元素
- 动态添加复选框和输入框 jQuery
- 动态添加哈希标记;t工作
- 将图表动态添加到组合高图表中