首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Telerik RadHtmlChart按列值分组系列

Telerik RadHtmlChart按列值分组系列
EN

Stack Overflow用户
提问于 2014-10-15 08:43:33
回答 1查看 2.1K关注 0票数 0

我正在做一个非常简单的投票应用程序。用户在文本中输入“yes”或“no”的值,结果就会通过AJAX在投影仪上实时显示出来。有五个不同的项目可以投票(都是或不是)。

现在,我有一个返回[poll_name, vote_value, value_count]的SQL视图,其中vote_value要么是'yes‘,要么是'no’。

使用RadHtmlChart,我试图显示一个堆叠的BarChart,每个poll_name都有一个条,一个红色条表示不投票,一个蓝色条表示赞成票。我尝试修改BarChart example中的代码并将其与SqlDataSource example合并

代码语言:javascript
复制
<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’列,但在此期间我可能不得不这样做。

EN

回答 1

Stack Overflow用户

发布于 2014-10-21 22:37:58

要堆叠系列,您至少需要两个:http://demos.telerik.com/aspnet-ajax/htmlchart/examples/functionality/stackedseries/defaultcs.aspx

应该对其值投赞成票(即,DataFieldY属性中提供的字段在x轴上的每一项都应该具有该数字)。另一个应该为反对票提供相同的支持。

因此,您应该具有以下内容:

代码语言:javascript
复制
    <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票数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26372690

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档