我有一个包含三列的表,后两个列中包含值。我正在尝试输出两个饼图,显示每个饼图的数据。由于某种原因,第二个饼图没有显示,而是显示为灰色方块。此外,传说连续出现两次,但它只是一个对我来说毫无意义的传奇。
这是标记:
<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>
然后我有SqlDataAdapter
用于填充DataSet
,然后我将DataTableCollection
转换为IEnumerable
列表类型,以便在数据绑定时使用它图表系列。它似乎有点毛茸茸,但我这样做的原因是因为DataSet
稍后用于某些XSLT输出,所以当我已经获得我需要/想要的数据时,没有必要重新查询数据库
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)根本没有显示,它只是一个灰色方块。我一直在摆弄几个小时而无济于事。 (编辑:另外,我已经做了类似的事情所以我不知道为什么这个不起作用。与我的另一个不同之处在于它最初来自两组不同的数据,但不应该是它不起作用的原因)
感谢。
答案 0 :(得分:1)
好的,我早上花了很多钱,但我解决了所有问题。传奇的问题已经解决,因为你需要像这样指定系列的图例:
<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>
并且应该像这样绑定数据:
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"
最后到达那里。