.net图表清除并重新添加

时间:2012-06-13 16:14:58

标签: c# asp.net charts

我有一个图表,我需要清除它以便用不同的值填充它。 该图表有3个系列,全部在.aspx页面中定义。

问题在于我打电话

chart.Series.Clear();

然后重新添加系列,如:

chart.Series.Add("SeriesName");

它不保留3个初始系列的任何属性。 如何清除值并保留系列属性?

5 个答案:

答案 0 :(得分:37)

这应该有效:

foreach(var series in chart.Series) {
    series.Points.Clear();
}

答案 1 :(得分:1)

我遇到了种问题(但对于Windows窗体应用程序而言)。所以,请您告诉我何时将数据源传递到图表。

我在将数据传递到图表控件时使用了错误的顺序

我是第一次这样做:

chart1.Series["Series1"].XValueType = System.Windows.Forms.DataVisualization.Charting.ChartValueType.Auto;

chart1.DataSource = sqlChartTabel; //sqlChartTable is my DataTable
// Assigning new Data to the charts
chart1.Series.Clear();   // clearing chart series (after the DataTable is assigned with data)
chart1.Series.Add("Violations");
chart1.Series["Series1"].XValueMember = "Month_name";
chart1.Series["Series1"].YValueMembers = "Salary";
chart1.ChartAreas["ChartArea1"].AxisX.Title = "Months";
chart1.ChartAreas["ChartArea1"].AxisY.Title = "Salary";
chart1.DataBind();
chart1.Visible = true;

所以,然后我意识到,我在清除图表之前先分配数据,所以我只是更改了语句顺序,并且成功了:

我的工作代码:

chart1.Series.Clear();   // changed position of clear(before Assigning the datatable)
chart1.Series.Add("Violations");
chart1.Series["Series1"].XValueType = System.Windows.Forms.DataVisualization.Charting.ChartValueType.Auto;
chart1.DataSource = sqlChartTabel;   //sqlChartTable is my DataTable

// Assigning new Data to the charts
chart1.Series["Series1"].XValueMember = "Month_name";
chart1.Series["Series1"].YValueMembers = "Salary";
chart1.ChartAreas["ChartArea1"].AxisX.Title = "Months";
chart1.ChartAreas["ChartArea1"].AxisY.Title = "Salary";
chart1.DataBind();
chart1.Visible = true;

答案 2 :(得分:0)

这实际上会从图表中完全删除系列(不只是删除系列中的点)。

while (chart1.Series.Count > 0) { chart1.Series.RemoveAt(0); }

答案 3 :(得分:0)

这应该有效

 chartnameHERE.Series["SeriesNameHERE"].Points.Clear();

答案 4 :(得分:0)

这对我有用

foreach(var series in chart.Series)
{
    series.Points.Clear();
}
reloadData();
this.chart.DataBind();