我有一个图表,我需要清除它以便用不同的值填充它。 该图表有3个系列,全部在.aspx页面中定义。
问题在于我打电话
chart.Series.Clear();
然后重新添加系列,如:
chart.Series.Add("SeriesName");
它不保留3个初始系列的任何属性。 如何清除值并保留系列属性?
答案 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();