ASP.NET MVC 3.0 Диаграмма Помощник отображения Легенда - PullRequest
4 голосов
/ 17 мая 2011

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

По умолчанию он не отображается, нет никакого свойства, которое я могу сказать отображать, и если я задаю легенду в 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 Ответ

11 голосов
/ 05 июля 2011

Вам нужно дать каждой Серии имя, а затем вызвать 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();
...