【问题标题】:How to add convert column chart to stackcolumn chart in asp.net如何在asp.net中添加转换柱形图到堆积柱形图
【发布时间】:2015-09-17 03:29:28
【问题描述】:

我有一个柱形图,它可以与以下代码一起正常工作。现在我想通过添加板球时间、曲棍球时间和现有的足球时间来使它成为一个堆栈柱形图。我有类似的程序来查找 Crickettime 和 Hockeytime。我想我需要在以下方法中指定系列,以便系列 1 是足球时间,系列 2 是板球时间,系列 3 是曲棍球时间。有关如何指定系列的任何帮助。

private void GetChartData2(){
    SqlConnection con2 = new System.Data.SqlClient.SqlConnection();
        con2.ConnectionString = "connectionstring";

        SqlCommand cmd2 = new SqlCommand("Execute spGetFootballTimeOftheUsersPerDay_Updated '" + currentUser + "'", con2);
        cmd2.CommandTimeout = 0;

        System.Data.SqlClient.SqlDataAdapter sqldataadap2 = new System.Data.SqlClient.SqlDataAdapter();
        sqldataadap2.SelectCommand = cmd2;

        DataTable dtable = new DataTable();
        dtable.Locale = System.Globalization.CultureInfo.InvariantCulture;

        sqldataadap2.Fill(dtable);
        Chart2.DataSource = dtable;


        Chart2.DataBind();

}

【问题讨论】:

  • 你是在做 Webforms 还是 MVC?
  • 我正在使用asp.net c#

标签: c# asp.net c#-4.0 webforms asp.net-charts


【解决方案1】:

我遇到过这种类型的问题。我得到了解决方案。

以下步骤。

您可以只使用一个包含所有列的系列(足球、曲棍球、板球)来管理您的数据

堆叠图表工作系列1表示所有列数据同时显示

你会像你得到的那样明智地管理数据列 第一个点板球列数据比添加另一列数据为 0 您的桌子第一行(板球)得到 100,而不是为足球和曲棍球添加另一行

以下类型的表格

没有比赛得分
1   板球   100
2 曲棍球 0
3   足球   0

4   板球   0
5 曲棍球 200
6   足球   0

7   板球   0
8 曲棍球 0
9   足球   300

示例 - 板球数据 (0)= 100 足球(0)= 0 曲棍球 (0) = 0

Series.Points(0) X=0,Y=100 板球
(1) X=0,Y=0 足球
(2) X=0,Y=0 曲棍球

您必须管理此类数据。

系列数据 板球数据 1 到 100 比生成 SRno 1 到 100 曲棍球数据 1 到 100 比生成 SRno 1 到 100 足球数据 1 到 100 比生成 srno 1 到 100

以下代码

BreakWisechart.DataBindCrossTable(dv, "SrNo", "GameColumn", "Score","Tooltip=GameColumn,Label=Score")

For Each cs As Series In BreakWisechart.Series
    With cs
        .ChartType = SeriesChartType.StackedColumn

        For Each Points In cs.Points
            **If Points.ToolTip = "1" Then
                .Color = Color.Red
            Else
                .Color = Color.Green
            End If**
        Next
        .IsValueShownAsLabel = False
        .YAxisType = AxisType.Secondary
        .Font = New Font("Calibri", 6, FontStyle.Regular)
    End With
    Next

【讨论】:

  • 谢谢你的回答,有时间我会试试的。