На моей странице есть диаграмма, настроенная для отображения данных, поступающих из SqlDataSource.
Существует TreeView, который содержит список точек данных, которые я хочу добавить в диаграмму какразные серии.Пользователь выбирает, какой элемент он хочет добавить, установив флажок в древовидной структуре для этого узла, а затем нажимает кнопку обновления, чтобы обновить диаграмму.
Каждому значению узла присваивается имя столбца в таблице.
Если в древовидном представлении выбрана только одна точка, то при нажатии кнопки обновления данные на диаграмме отображаются без проблем.
Если выбрано несколько элементов в древовидном представленииСтраница ошибки ASP.NET появляется при нажатии кнопки, указывающей, что имя столбца «XXXX» не найдено, где «XXXX» - это узел. Значение самого высокого элемента в проверенном дереве.
Например,ошибка, говорящая, что «Столбец с именем« X1 »не был найден» будет отображаться при использовании следующего выбора:
Если выбран только «X1», данные отображаются надиаграмма.
public void UpdateChart(Object sender, EventArgs e)
{
if (TagTreeView.CheckedNodes.Count > 0)
{
foreach (TreeNode node in TagTreeView.CheckedNodes)
{
// Add a series to the chart
Series series = new Series();
series=Chart1.Series.Add("Series"+node.Value);
series.ChartArea = "ChartArea1";
series.ChartType = (SeriesChartType)Enum.Parse(typeof(SeriesChartType), charts[1], true);
// create a datasource, add it to the page,
SqlDataSource sqlDataSource = new SqlDataSource();
sqlDataSource.ID = "SQLDataSource"+node.Value;
sqlDataSource.ConnectionString = ConfigurationManager.ConnectionStrings["HistoricalDataConnectionString"].ConnectionString;
if (node.Depth > 1)
{
if (node.Parent.Text.Contains("AAA"))
{
MessageBox.Show(node.Value);
sqlDataSource.SelectCommand = "SELECT (Date + CONVERT(datetime,Time)) As TimeStamp, " + node.Value + " FROM AAA ORDER BY TimeStamp";
}
this.Page.Controls.Add(sqlDataSource);
Chart1.DataSourceID = "SQLDataSource"+node.Value;
Chart1.Series["Series" + node.Value].XValueMember = "TimeStamp";
Chart1.Series["Series" + node.Value].YValueMembers = node.Value;
Chart1.DataBind();
}
}
}
}
Есть ли способ взять каждый выбранный элемент в TreeView и использовать node.value для построения запроса для добавления дополнительной серии в chИзобразительное искусство?Я проделал небольшую работу, чтобы увидеть, помещает ли объекты SqlDatasource и Series в массив и проходит через них, но, похоже, это никуда меня не приведет.