Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 将ChartJSCore转换为Highcharts.net-在循环中使用动态系列数据发布_Asp.net_.net_Highcharts_Chart.js - Fatal编程技术网

Asp.net 将ChartJSCore转换为Highcharts.net-在循环中使用动态系列数据发布

Asp.net 将ChartJSCore转换为Highcharts.net-在循环中使用动态系列数据发布,asp.net,.net,highcharts,chart.js,Asp.net,.net,Highcharts,Chart.js,(正如我回答的问题,这是一个编辑,让人们知道,使用ChartJSCore或HighCharts.Net,使用下面的适当解决方案,可以在堆叠条形图或堆叠柱形图中创建动态数字列或条形图。我希望这对某些人有所帮助。) 我在ChartJS中遇到了一个障碍,即图表图例和堆叠条形图的实现,因此我必须找到另一个替代方案。如果您的数据是静态的,那么Highcharts.NET看起来很棒,而且很容易实现,但是什么时候我们的数据是静态的呢。它们不包含任何动态示例,在Stackoverflow上也没有任何在线示例 在

(正如我回答的问题,这是一个编辑,让人们知道,使用ChartJSCore或HighCharts.Net,使用下面的适当解决方案,可以在堆叠条形图或堆叠柱形图中创建动态数字列或条形图。我希望这对某些人有所帮助。)

我在ChartJS中遇到了一个障碍,即图表图例和堆叠条形图的实现,因此我必须找到另一个替代方案。如果您的数据是静态的,那么Highcharts.NET看起来很棒,而且很容易实现,但是什么时候我们的数据是静态的呢。它们不包含任何动态示例,在Stackoverflow上也没有任何在线示例

在ChartJSCore中,在循环中创建一系列数据集相当容易

此代码适用于ChartJSCore:

IDictionary<string, BarDataset> barDataset = new Dictionary<string, BarDataset>();
            data.Datasets = new List<Dataset>();
            //assign series totals to the chart's dataset
            foreach (var seriesId in seriesIds)
            {
                var seriesName = _seriesRepository.GetSeriesName(seriesId);
                var seriesTotalsByLast6Months = _seriesRepository.GetSeriesTotalsByLast6Months(seriesId);
                barDataset[seriesId.ToString()] = new BarDataset
                {
                    Data = seriesTotalsByLast6Months.Select(x => x.Amount).ToArray(),
                    Label = seriesName.First()
                };
            }

            //Add the datasets to the dataset list
            foreach (var x in barDataset.Values)
            {
                data.Datasets.Add(x);
            }
IDictionary barDataset=new Dictionary();
data.dataset=新列表();
//将系列总计分配给图表的数据集
foreach(系列ID中的变量系列ID)
{
var seriesName=\u seriesRepository.GetSeriesName(seriesId);
var seriesTotalsByLast6Months=_seriesRepository.GetSeriesTotalsByLast6Months(seriesId);
barDataset[seriesId.ToString()]=新的barDataset
{
Data=seriestotalsbylast6个月。选择(x=>x.Amount)。ToArray(),
Label=seriesName.First()
};
}
//将数据集添加到数据集列表中
foreach(barDataset.Values中的变量x)
{
数据集。添加(x);
}
我正朝着这个方向前进,但是Data=seriesTotalsByLast6Months.Select(x=>x.Amount).ToList()行上的类型不匹配,因为HighCharts不接受通用列表。它有自己的列表,我不知道如何在这种情况下格式化它

IDictionary<string, ColumnSeries> columnSeries = new Dictionary<string, ColumnSeries>();

            foreach (var seriesId in seriesIds)
            {
                var seriesName = _seriesRepository.GetSeriesName(seriesId);
                var seriesTotalsByLast6Months = _seriesRepository.GetSeriesTotalsByLast6Months(seriesId);
                columnSeries[seriesId.ToString()] = new ColumnSeries
                {
                    Name = seriesName.First(),
                    //type mismatch on the line below
                    Data = seriesTotalsByLast6Months.Select(x => x.Amount).ToList()
                };
            }


            foreach (var x in columnSeries.Values)
            {
                //also, what goes here - what do you add the columnSeries' to?
            }
IDictionary columnSeries=new Dictionary();
foreach(系列ID中的变量系列ID)
{
var seriesName=\u seriesRepository.GetSeriesName(seriesId);
var seriesTotalsByLast6Months=_seriesRepository.GetSeriesTotalsByLast6Months(seriesId);
columnSeries[seriesId.ToString()]=新columnSeries
{
Name=seriesName.First(),
//在下面的行中输入不匹配
Data=seriesTotalsByLast6Months.Select(x=>x.Amount).ToList()
};
}
foreach(columnSeries.Values中的变量x)
{
//还有,这里是什么-你把columnSeries添加到了什么?
}

另外,我不知道添加组合数据集的循环是什么样子的。在ChartJSCore中,您必须创建一个数据对象并向其中添加数据集。正如我的代码所示,这很容易做到。

我因此解决了这个问题,因为HighChart数据需要它自己的格式化ColumnSeriesData—无论开发人员出于什么奇怪的原因决定这样做,您都不能传入一个通用列表:

IDictionary<string, ColumnSeries> columnSeries = new Dictionary<string, ColumnSeries>();

            foreach (var seriesId in seriesIds)
            {
                var seriesName = _seriesRepository.GetSeriesName(seriesId);
                var seriesTotalsByLast6Months = _seriesRepository.GetSeriesTotalsByLast6Months(seriesId);
                List<ColumnSeriesData> columnSeriesData = new List<ColumnSeriesData>();
                seriesTotalsByLast6Months.ForEach(p => columnSeriesData.Add(new ColumnSeriesData { Y = p.Amount }));

                columnSeries[seriesId.ToString()] = new ColumnSeries
                {
                    Name = seriesName.First(),
                    Data = columnSeriesData
                };
            }
foreach (var x in columnSeries.Values)
            {
                //add column series to the chart
                chartOptions.Series.Add(x);
            }