首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >图表控件多个ChartArea,相同的表

图表控件多个ChartArea,相同的表
EN

Stack Overflow用户
提问于 2009-09-15 08:45:26
回答 1查看 3.7K关注 0票数 0

我有一个包含三列的表,后两列中包含值。我尝试输出两个饼图,分别显示每个饼图的数据。由于某些原因,第二个饼图没有显示,而是显示为一个灰色正方形。此外,图例连续出现了两次,但它只是一个图例,对我来说没有任何意义。

这是标记:

代码语言:javascript
复制
<asp:Chart Height="500" Width="500" ID="ClientModelChart" runat="server">
    <Series>
       <asp:Series ChartType="Pie" IsValueShownAsLabel="true" Name="PortfolioActual"></asp:Series>
       <asp:Series ChartType="Pie" IsValueShownAsLabel="true" Name="ModelActual"></asp:Series>
    </Series>
    <Legends>
       <asp:Legend Name="PortfolioActual"></asp:Legend>
       <asp:Legend Name="ModelActual"></asp:Legend>
    </Legends>
    <ChartAreas>
       <asp:ChartArea Area3DStyle-Enable3D="true" Area3DStyle-LightStyle="Realistic" Name="PortfolioActual"></asp:ChartArea>
       <asp:ChartArea Area3DStyle-Enable3D="true" Name="ModelActual"></asp:ChartArea>
    </ChartAreas>
</asp:Chart>

然后,我得到了一个用于填充DataSetSqlDataAdapter,然后将DataTableCollection转换为IEnumerable列表类型,以便在数据绑定图表系列时使用它。这看起来有点麻烦,但我这样做的原因是因为DataSet稍后将用于一些XSLT输出,所以当我已经获得所需/想要的数据时,重新查询数据库是没有意义的。

代码语言:javascript
复制
Dim sectorList As IList = CType(ds.Tables(1), IListSource).GetList()

ClientModelChart.Series("PortfolioActual").Points.DataBind(sectorList, "Sector", "Model", Nothing)
ClientModelChart.Series("ModelActual").Points.DataBind(sectorList, "Sector", "Client", Nothing)

因此,第二个饼图(ModelActual)根本没有显示,它只是一个灰色正方形。我已经摆弄了好几个小时了,也没有用。(编辑:另外,我已经做了类似的事情,所以我不知道为什么这个不能工作。与我的另一个不同之处在于,它最初来自两个独立的数据集,但这不应该是它不起作用的原因。)

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-09-15 10:34:55

好吧,我愚蠢地花了一早上的时间,但我解决了所有的问题。图例的问题已经解决,因为您需要针对系列指定图例,如下所示:

代码语言:javascript
复制
      <asp:Chart Height="500" Width="500" ID="ClientModelChart" runat="server">
        <Legends>
          <asp:Legend Name="PortfolioActual"></asp:Legend>
          <asp:Legend Enabled="false" Name="ModelActual"></asp:Legend>
        </Legends>
        <Series>
          <asp:Series ChartType="Pie" Legend="PortfolioActual" ChartArea="PortfolioActual" IsValueShownAsLabel="true" Name="PortfolioActual"></asp:Series>
          <asp:Series ChartType="Pie" Legend="ModelActual" ChartArea="ModelActual" IsValueShownAsLabel="true" Name="ModelActual"></asp:Series>
        </Series>
        <ChartAreas>
          <asp:ChartArea Area3DStyle-Enable3D="true" Area3DStyle-LightStyle="Realistic" Name="PortfolioActual"></asp:ChartArea>
          <asp:ChartArea Area3DStyle-Enable3D="true" Area3DStyle-LightStyle="Realistic" Name="ModelActual"></asp:ChartArea>
        </ChartAreas>
      </asp:Chart>

绑定数据应该像这样做:

代码语言:javascript
复制
Dim sectorList As IList = CType(ds.Tables(1), IListSource).GetList()

ClientModelChart.Series("PortfolioActual").Points.DataBindXY(sectorList, "Sector", sectorList, "Model")
ClientModelChart.Series("ModelActual").Points.DataBindXY(sectorList, "Sector", sectorList, "Client")
ClientModelChart.Series("PortfolioActual")("PieLabelStyle") = "Outside"
ClientModelChart.Series("ModelActual")("PieLabelStyle") = "Outside"

最后还是到了那里。

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

https://stackoverflow.com/questions/1425952

复制
相关文章

相似问题

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