我想在我的图表中添加一个不同的折线图。所以我有一个带按钮的文本框。我输入一个代码并从我的数据库加载该系列。问题是新系列系列会覆盖旧系列。所以我决定将添加的系列保留在gridview中,我循环遍历并填充图表;同样的结果。
这是我的代码
void AddSerie(string stockName)
{
try
{
Legend legend = new Legend(stockName);
Chart1.Legends.Add(legend);
Series series = new Series(stockName);
Chart1.Series.Add(series);
string[] _data = new string[3];
_data[0] = stockName;
_data[1] = "2010-01-01";
_data[2] = "2015-03-15";
DataSet ds = DBSelect(_data, "web_price_series");
Chart1.DataSource = ds;
Chart1.Series[stockName].XValueMember = "tdate";
Chart1.Series[stockName].YValueMembers = "value";
Chart1.Series[stockName].ChartType = SeriesChartType.Line;
Chart1.DataBind();
}
catch (Exception)
{
throw;
}
}
这就是我如何称呼方法
foreach (GridViewRow row in GridView1.Rows)
{
if (row.RowType == DataControlRowType.DataRow)
{
AddSerie(row.Cells[0].Text);
}
}
我的图例显示了两个系列,但图表只显示了一行。
我添加了这张图片,以显示使用MarkerStyle的两家公司的图表的第二个输出。
这是我想要实现的一个例子。
这是表的结构
任何帮助?
答案 0 :(得分:0)
而不是使用数据绑定我使用另一种方法: Chart1.Series [0] .Points.AddXY(XValues,Yalues);
void AddSerie(string stockName)
{
try
{
Legend legend = new Legend(stockName);
Chart1.Legends.Add(legend);
Series series = new Series(stockName);
Chart1.Series.Add(series);
string[] _data = new string[3];
_data[0] = stockName;
_data[1] = "2010-01-01";
_data[2] = "2015-03-15";
DataSet ds = DBSelect(_data, "web_price_series");
Chart1.DataSource = ds;
Chart1.Series[stockName].XValueMember = "tdate";
Chart1.Series[stockName].YValueMembers = "value";
Chart1.Series[stockName].ChartType = SeriesChartType.Line;
foreach (DataRow row in ds.Tables[0].Rows)
{
Chart1.Series[stockName].Points.AddXY(row[0], row[1]);
}
// Chart1.DataBind();
}
catch (Exception)
{
throw;
}
}