Javascript 从dataTable动态显示图表
我想使用Javascript 从dataTable动态显示图表,javascript,xhtml,amcharts,Javascript,Xhtml,Amcharts,我想使用Amcharts显示图表,我有一个数据库中使用count/groupBy的数据表。现在,我想动态显示图表,我想迭代dataTable,并在chartData数组中连续生成第一列和第二列。 这是我的数据表: Stat.xhtml <h:form id="ff"> <rich:dataTable id="tablereparation" value="#{stat.results}" var="rep"> <h:column headerClass="hea
Amcharts
显示图表,我有一个数据库中使用count/groupBy
的数据表。现在,我想动态显示图表,我想迭代dataTable,并在chartData
数组中连续生成第一列和第二列。
这是我的数据表:
Stat.xhtml
<h:form id="ff">
<rich:dataTable id="tablereparation" value="#{stat.results}" var="rep">
<h:column headerClass="headerleftfacet">
<h:outputText id="np" value="#{rep[0]}" /></h:column>
<h:column headerClass="headermiddlefacet">
<h:outputText id="nbpanne" value="#{rep[1]}" />
</h:column>
</rich:dataTable>
</h:form>
test.js
var chart;
var legend;
//my attempt
var table = document.getElementById('ff:tablereparation');
var rows = table.getElementsByTagName("tbody")[0].getElementsByTagName("tr");
for (var i = 0; i < rows.length; i++) {
var cells = rows[i].getElementsByTagName("td");
for (var j = 0; j <= 0; j++) {
var cell = cells[j];
alert(cells.innerHtml);
}
}
var chartData = [{
panne: ?,
percpangrave: ?
}];
chart = new AmCharts.AmPieChart();
chart.dataProvider = chartData;
chart.titleField = "panne";
chart.valueField = "percpangrave";
chart.outlineColor = "#FFFFFF";
chart.outlineAlpha = 0.8;
chart.outlineThickness = 2;
legend = new AmCharts.AmLegend();
legend.position = "bottom";
legend.align = "center";
legend.markerType = "square";
legend.valueText = "";
chart.addLegend(legend);
chart.write("chartdiv1");
var图;
变量图例;
//我的尝试
var table=document.getElementById('ff:TableRepaition');
var rows=table.getElementsByTagName(“tbody”)[0].getElementsByTagName(“tr”);
对于(变量i=0;i 对于(var j=0;j不知道这种数据表HTML,用于读取单元格信息的JavaScript看起来不正确。您可以直接从rows变量获取行的单元格,因为每个
都包含一个关联的单元格
数组,只需从其中提取innerHTML值并动态地读取数组。下面是一个示例,它还演示了一种快速获取行的方法:
var图;
变量图例;
//var table=document.getElementById('ff:TableRepaition');
//var rows=table.getElementsByTagName(“tbody”)[0].getElementsByTagName(“tr”);
//较短的方法:
var rows=document.queryselectoral(#ff\\:tableRepaition tr);//注意双斜杠可以将冒号作为文字字符转义,因为它是css中的选择器
var chartData=[];
对于(变量i=0;i
#chartdiv1{
宽度:100%;
高度:300px;
}
标题1
30
标题2
10
标题3
60
标题4
40
谢谢你的回答,但是当我试图显示行[I].单元格[0].innerHTML
时,我得到了这个结果Panne grave
,我只需要值,在本例中Panne grave
只是我用textContent
替换了innerHTML
,它就可以工作了