ASP.NET Легенда отображения помощника диаграммы MVC 3.0

#c# #.net #asp.net-mvc-3 #mschart

#c# #.net #asp.net-mvc-3 #mschart

Вопрос:

Есть ли какой-либо способ отобразить условные обозначения на диаграмме с помощью помощника диаграммы?

Он не отображает его по умолчанию, нет свойства, которое я мог бы указать для отображения, и если я укажу условные обозначения в xml :

 <Legends>
    <Legend _Template_=""All"" BackColor=""Black"" Docking=""Bottom"" Font=""Trebuchet MS, 8.25pt, style=Bold"" LegendStyle=""Row"" >
    </Legend>
  </Legends>  
  

Это также не работает.

В помощнике по диаграммам есть метод public Chart AddLegend(string title = null, string name = null) ; но когда я вызываю его, я не вижу легенды на своей диаграмме, диаграмма также не отображается.

 Chart chart = new System.Web.Helpers.Chart(width: 120, height: 300, theme: chartStyle: ChartTheme.Green.ToString()) 
                .AddLegend("title", "name") // not existed legends, that's why error.
                .AddSeries(
                    chartType: "Column"
                    legend: "Rainfall"
                    xValue: new[] { "jan", "feb", "mar", "apr", "may" },
                    yValues: new[] { "20", "20", "40", "10", "10" });
  

. Ошибка при получении: Series 'Series1' uses non-existing legend name 'Rainfall'. Set Legend property value to Default

Если я изменю legend: "Rainfall" на legend: "Default" , то получу ту же ошибку.

Как я мог бы сделать так, чтобы это название легенды существовало? Например, в случае использования System.Web.UI.DataVisualization.Charting напрямую это будет выглядеть следующим образом:

         chart.Legends.Add("Legend1");

        // show legend based on check box value
        chart.Legends["Legend1"].Enabled = true;
  

Но как добиться того же с помощью помощника?

Ответ №1:

Вам нужно присвоить каждой серии имя, затем вызвать AddLegend() без параметров, чтобы добавить условные обозначения.

     var chart = new Chart(width: 600, height: 250)
        .AddSeries(
            chartType: "column",
            xValue: new [] { 2010, 2011, 2012 },
            yValues: new[] { 100, 125, 150 },
            name: "Forecasts")
        .AddSeries(
            chartType: "column",
            xValue: new[] { 2010, 2011, 2012 },
            yValues: new[] { 200, 225, 250 },
            name: "Actuals")
        .AddLegend();