我知道如何将Datatable绑定到Repeaters和Datalist,并使用
显示它们的内容 <%# Eval("FieldName")%>
我知道如何使用flotr2创建一个演示饼状图
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/prototype/1.6.1.0/prototype.js"></script>
<script type="text/javascript" src="https://raw.github.com/ekoontz/flotr/master/flotr/flotr-0.2.0-alpha.js"></script>
</head>
<body>
<div id="container" style="width:350px;height:300px;" ></div>
<script type='text/javascript'>
(function basic_pie(container) {
var
d1 = [[0, 200]],
d2 = [[0, 60]],
d3 = [[0, 6]],
d4 = [[0, 80]],
d5 = [[0, 20]],
graph;
graph = Flotr.draw('container',
[{ data : d1, label : 'Attending'},{ data : d2, label : 'Not Attending' },{ data : d3, label : 'No Attempts' }, { data : d4, label : 'Unreachable' }, { data : d5, label : 'Undecided' }],
{
shadowSize: 4,
colors: ['#BAC463', '#C5B59C', '#B88898', '#FFAC84', '#7BBDAF'],
grid : { verticalLines : false, horizontalLines : false, outlineWidth: 0 },
xaxis : { showLabels : false },
yaxis : { showLabels : false },
pie : { show : true, explode : 4, labelFormatter: function(total, value) { return value;} },
mouse : { track : true },
legend : { show: false, position : 'se', backgroundColor : '#D2E8FF'}
}
);
})(document.getElementById("editor-render-0"));
</script>
</body>
这是我的主要问题
我如何动态更新我的饼图数据,以便当我绑定一个数据表时,它将显示其适当的内容。
基于我的演示饼图。我需要显示总共5个数据,即
主治医师,未主治医师,未尝试,无法联系,未决定
我可以用这5个总数有多个记录,并且可以为其中任何一个记录设置0值,但不能同时为所有记录设置0值。
以及是否可以将特定颜色绑定到特定数据?
比如我想让主治医生的馅饼部分是绿色的,而不是红色的,等等…因为在我的演示中它会自动使用默认颜色的序列。例如,当notattend = 0时,我不应该再显示它,但颜色仍然应该与各自的数据一致。意思是红色不能再用了。但是我在解决这个问题上真的有困难,因为缺乏flotr2的文档和示例。
我希望有人能帮我解决这个问题。我已经解决了我的问题,但我使用了谷歌的可视化。我使用了一个数据列表,并将javascript放在数据列表
的<ItemTemplate></ItemTemplate>
标签内。<script type="text/javascript">
google.load("visualization", "1", { packages: ["corechart"] });
google.setOnLoadCallback(drawChart);
function drawChart() {
var data = google.visualization.arrayToDataTable([
['Status', 'Total Guest'],
['Attending', <%# GetGuestCountByStatus(int.Parse(Eval("EventId").ToString()), 1) %>],
['Not Attending', <%# GetGuestCountByStatus(int.Parse(Eval("EventId").ToString()), 2) %>],
['Undecided', <%# GetGuestCountByStatus(int.Parse(Eval("EventId").ToString()), 3) %>],
['Unreachable', <%# GetGuestCountByStatus(int.Parse(Eval("EventId").ToString()), 4) %>],
['Pending', <%# GetGuestCountByStatus(int.Parse(Eval("EventId").ToString()), 5) %>]
]);
var options = {
title: '',
slices: { 0: { color: '#a0d2af' }, 1: { color: '#f1a99b' }, 2: { color: '#dac0c3' }, 3: { color: '#a8d7dd' }, 4: { color: '#fed9a2'} },
legend: { position: 'none' },
pieSliceText: 'none'
};
var chart = new google.visualization.PieChart(document.getElementById(<%# "'chart-div-" + Eval("EventId") + "'" %>));
chart.draw(data, options);
}
</script>
我必须为每个图表div添加事件Id。
目前,可视化中的Colors比flotr2更好,因为您可以为数据的每个索引指定颜色,并且在flotr2的文档中不清楚如何做到这一点。如果将饼图中的数据设置为0,则不会显示该数据,也不会显示分配给该索引的颜色。而在flotr2中,如果您的值为0,则可以看到饼图中有一条线。我认为这只是边界,但在写这篇文章的时候,通过可视化仍然做得更好。