Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在使用MS Chart控件的ASP.Net饼图中,出现的图例项数是串联项数的n倍_Asp.net_Vb.net_Charts_Pie Chart_Mschart - Fatal编程技术网

在使用MS Chart控件的ASP.Net饼图中,出现的图例项数是串联项数的n倍

在使用MS Chart控件的ASP.Net饼图中,出现的图例项数是串联项数的n倍,asp.net,vb.net,charts,pie-chart,mschart,Asp.net,Vb.net,Charts,Pie Chart,Mschart,我正在使用VB.Net在ASP.Net中使用MS图表控件。图表类型为饼图。我面临着一个奇怪的问题,图例中显示的项目数是当前序列数的平方。这意味着,如果将2个系列添加到饼图中,图例中将显示4个项目,如果将7个系列添加到饼图中,图例中将显示49个项目。第一组7个项目显示正确的数据,其他项目仅显示0 以下是我的图表控件在ASPX中的标记- <asp:Chart runat="server" ID="chartX" CssClass="chart" Width="420px" Height="5

我正在使用VB.Net在ASP.Net中使用MS图表控件。图表类型为饼图。我面临着一个奇怪的问题,图例中显示的项目数是当前序列数的平方。这意味着,如果将2个系列添加到饼图中,图例中将显示4个项目,如果将7个系列添加到饼图中,图例中将显示49个项目。第一组7个项目显示正确的数据,其他项目仅显示0

以下是我的图表控件在ASPX中的标记-

 <asp:Chart runat="server" ID="chartX" CssClass="chart" Width="420px" Height="500px" ImageType="Jpeg">
    <Series></Series>
    <ChartAreas>
        <asp:ChartArea Name="ChartArea1"></asp:ChartArea>
    </ChartAreas>
    <Legends>
        <asp:Legend Docking="Bottom" Alignment="Center" Font="Calibri"></asp:Legend>
    </Legends>
 </asp:Chart>

希望有任何答案。

如果我没弄错的话,您正在为表中的每一行添加一个新的序列。相反,您应该为表添加一次序列,然后绑定数据

设置图形时,不需要遍历所有行。绑定到表时只执行一次。我从未接触过VB,但它应该是这样的

Dim table As DataTable = PopulateData()
Dim dv As DataView = New DataView(table, "Count > 0", "", DataViewRowState.OriginalRows)
' setup just once
Dim series As String = "Series Name"
chartX.Series.Add(series)
chartX.Series(series).ChartType = DataVisualization.Charting.SeriesChartType.Pie
chartX.Series(series).XValueMember = "Name"
chartX.Series(series).YValueMembers = "Count"
chartX.ChartAreas(0).Area3DStyle.Enable3D = True
chartX.Series(series).Label = "#VALX" & Environment.NewLine & "(#PERCENT)"
chartX.Series(series)("PieLabelStyle") = "Disabled"
' bind to the entire set
chartX.DataSource = dv
chartX.DataBind()

如果我为表添加一次序列,它会工作,但由于这一点,只生成一个序列的值。我想在asp.net中为饼图填充第个系列和总共只有一个图例文本。你能告诉我,这怎么可能?
Dim table As DataTable = PopulateData()
Dim dv As DataView = New DataView(table, "Count > 0", "", DataViewRowState.OriginalRows)
' setup just once
Dim series As String = "Series Name"
chartX.Series.Add(series)
chartX.Series(series).ChartType = DataVisualization.Charting.SeriesChartType.Pie
chartX.Series(series).XValueMember = "Name"
chartX.Series(series).YValueMembers = "Count"
chartX.ChartAreas(0).Area3DStyle.Enable3D = True
chartX.Series(series).Label = "#VALX" & Environment.NewLine & "(#PERCENT)"
chartX.Series(series)("PieLabelStyle") = "Disabled"
' bind to the entire set
chartX.DataSource = dv
chartX.DataBind()