ASP.NET Charting - 错误构建的动态图表

时间:2016-12-15 16:01:37

标签: c# asp.net charts

我正在尝试从以下DataTable创建图表: DataTable1 DataTable2

在我的aspx页面中,我有一个简单的图表,代码如下:

state.show_sls

代码隐藏:

<asp:Chart ID="chartTipo1" runat="server" BackColor="Transparent" Palette="Pastel" TextAntiAliasingQuality="High" Width="1400px" Height="500px" Visible="false">
    <Series></Series>
    <ChartAreas>
        <asp:ChartArea Name="ChartArea1">
            <AxisX IsStartedFromZero="True" LineColor="LightGray" LabelAutoFitStyle="LabelsAngleStep30" IsLabelAutoFit="true">
                <MajorGrid LineColor="White" />
            </AxisX>
            <AxisY LineColor="LightGray">
                <MajorGrid LineColor="LightGray" />
            </AxisY>
        </asp:ChartArea>
    </ChartAreas>
    <Legends>
        <asp:Legend BorderWidth="1"></asp:Legend>
    </Legends>
</asp:Chart>

我为每个不同的类型创建一个系列,然后添加点。在此之后,我为每列添加一个标签(我应该有6个不同的列,来自6个不同的位置)。

结果图表如下: enter image description here

正如您所看到的,图表是错误构建的,因为位置'Azeitão'只有一种类型关联,而不是图表中显示的更多。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

在@jstreet的帮助下,我能够解决问题。

我做了什么: 我创建了一个包含所有不同位置的列表,以及一个包含所有不同类型的列表。然后,对于DataTable中的每一行,我使用

搜索了具有此位置和此类型的行。
DataRow[] lRow = dtTipos.Select("LOCATION= '" + l + "' AND TYPE= '" + t + "'");

然后,如果我找到了一行,我会在对应的值中添加一个Point,否则我会在列中添加一个值为0的Point,这样我就可以为每个类型创建一个空列。 t存在于每个位置。

问题解决了。