Asp.Net graphique avec plusieurs séries, et plusieurs valeurs sur l'axe y
J'ai une table qui ressemble à ceci:
Data Value 1 Value 2 Value 3
series1 32 -2 46
series2 -62 99
series3 19 23 98
Sur le graphique, j'ai besoin qu'elle ressemble à ceci:
32 -2 46 -62 99 19 23 98
series1 series2 series3
et la légende : valeur 1, valeur 2 valeur 3
les codes que j'ai essayé:
private void LoadChartCurrencyTotal(DataTable initialDataSource)
{
DataTable pivotedDt = Pivot(initialDataSource);
chart1.DataSource = pivotedDt;
foreach (DataRow dr in pivotedDt.Rows)
{
Series series = new Series(dr["Data"].ToString());
List<string> colNames = (from DataColumn col in pivotedDt.Columns where col.ColumnName != "Data" select col.ColumnName).ToList();
series.XValueMember = "Data";
series.YValueMembers = string.Join(",", colNames);
chart1.Series.Add(series);
}
chart1.DataBind();
FormatChart(chart1);
}
cela renvoie Data points insertion error. Only 1 Y values can be set for this data series.
en raison de l'rejoint les noms de colonne.
Aussi essayé:
private void LoadChartCurrencyTotal(DataTable initialDataSource)
{
DataTable pivotedDt = Pivot(initialDataSource);
foreach (DataRow pivotDr in pivotedDt.Rows)
{
Series serie = new Series(pivotDr["Data"].ToString());
List<decimal?> colValues = new List<decimal?>();
foreach (DataColumn col in pivotedDt.Columns)
{
if (col.ColumnName != "Data")
{
//colValues.Add(pivotDr[col.ColumnName] != DBNull.Value
// ? decimal.Parse(pivotDr[col.ColumnName].ToString())
// : new decimal?());
decimal? colValue = pivotDr[col.ColumnName] != DBNull.Value
? decimal.Parse(pivotDr[col.ColumnName].ToString())
: new decimal?();
serie.Points.AddXY(pivotDr["Data"], colValue);
}
}
//serie.Points.AddXY(pivotDr["Data"], string.Join(",", colValues));
chart1.Series.Add(serie);
}
FormatChart(chart1);
}
Cette compile, mais le résultat est complètement foiré: La légende sais série1, series2, series3 et le résultat est:
32 -62 19 -2 23 46 99 98
series1 series2 series3
Je reçois les résultats par colonne et non par ligne.
Et le dernier que j'ai essayé est:
DataView pivotedDv = pivotedDt.AsDataView();
chart1.DataBindTable(pivotedDv, pivotedDt.Columns[0].ColumnName);
mais cela ne retourne:
0.00 0.00 0.00
series1 series2 series3
et la légende: 0.00
Espère que quelqu'un a une idée de comment cela doit être accomplie. mais s'il vous plaît, pas de glisser-déposer et cliquez sur solutions, mais le code.
Grâce
Vous devez vous connecter pour publier un commentaire.
Je pense que j'ai ce travail comme vous le souhaitez en utilisant le code suivant. Espérons que cela aide: