我正在做一个非常简单的投票应用程序。用户在文本中输入“yes”或“no”的值,结果就会通过AJAX在投影仪上实时显示出来。有五个不同的项目可以投票(都是或不是)。
现在,我有一个返回[poll_name, vote_value, value_count]的SQL视图,其中vote_value要么是'yes‘,要么是'no’。
使用RadHtmlChart,我试图显示一个堆叠的BarChart,每个poll_name都有一个条,一个红色条表示不投票,一个蓝色条表示赞成票。我尝试修改BarChart example中的代码并将其与SqlDataSource example合并
<asp:SqlDataSource ID="sqlResults" runat="server" ConnectionString="<%$ ConnectionStrings:MyDB %>"
SelectCommand="select poll_name, vote_value, value_count from vw_sms_pollResults order by poll_id" />
<tel:RadScriptManager runat="server" ID="rsmScriptManager" />
<tel:RadAjaxPanel runat="server" ID="rapPanel" LoadingPanelID="ralpLoadingPanel" EnableAJAX="true">
<tel:RadHtmlChart runat="server" ID="rhcResults" Width="800" Height="500" Transitions="true" DataSourceID="sqlResults">
...
<PlotArea>
<Appearance>
<FillStyle BackgroundColor="White" />
</Appearance>
<XAxis DataLabelsField="poll_name">
<MajorGridLines Visible="false" />
<MinorGridLines Visible="false" />
</XAxis>
<YAxis AxisCrossingValue="0">
<MajorGridLines Visible="false" />
<MinorGridLines Visible="false" />
</YAxis>
<Series>
<tel:BarSeries Stacked="true" DataFieldY="value_count">
<Appearance FillStyle-BackgroundColor="Red" />
</tel:BarSeries>
</Series>
</PlotArea>
</tel:RadHtmlChart>
</tel:RadAjaxPanel>不幸的是,我最终得到的条形图是我想要的两倍:每个poll_name的“是”和“否”,它们都是相同的颜色(显然),它们没有堆叠在一起。理想情况下,我可以告诉它为vote_value的每个值创建一个新的BarSeries。
我该如何处理数据或更改标记来解决这个问题呢?在未来,我希望允许任意数量的响应,所以我不喜欢将查询更改为只有一个'yes_count‘和'no_count’列,但在此期间我可能不得不这样做。
发布于 2014-10-21 22:37:58
要堆叠系列,您至少需要两个:http://demos.telerik.com/aspnet-ajax/htmlchart/examples/functionality/stackedseries/defaultcs.aspx
应该对其值投赞成票(即,DataFieldY属性中提供的字段在x轴上的每一项都应该具有该数字)。另一个应该为反对票提供相同的支持。
因此,您应该具有以下内容:
<Series>
<tel:BarSeries Stacked="true" DataFieldY="value_count_Yes">
<Appearance FillStyle-BackgroundColor="Red" />
</tel:BarSeries>
<tel:BarSeries Stacked="true" DataFieldY="value_count_No">
<Appearance FillStyle-BackgroundColor="Blue" />
</tel:BarSeries>
</Series>我不确定您的数据是如何构造的,因此我不确定您如何获得此数据。也许您可以在SQL查询本身中生成一个动态字段,以便从总票数中减去yes票数。
https://stackoverflow.com/questions/26372690
复制相似问题