2012-01-15 1 views
2

Хотелось бы узнать, как можно загружать параметры & граф данных или целая структура графика, возвращающая объект JSON?HighCharts & MVC: Как загрузить полное определение графика и данные с помощью JSON?

В частности, я хотел бы, чтобы динамически создавать варианты, категории, оси, данных и т.д. с JSON; Я думаю, что это возможно, но я только нашел информацию, описывающую, как загружать данные &, а не варианты.

Например, я хотел бы, чтобы определить название, XAxis и т.д., возвращая JSon объект:

[...] 

    title: { 
    text: 'Total fruit consumtion, grouped by gender' 
    }, 
    xAxis: { 
    categories: [] 
    }, 

[...] 

В частности, мне нужно динамически создавать более сложный график, подобный этому: http://www.highcharts.com/demo/column-stacked-and-grouped

Заранее благодарен!

+0

Я думал ... можно ли использовать ViewBag для создать части javascripts ??? Это такая плохая идея? THX – Larry

+0

Я думаю, вы можете просто создать маршрут/страницу, которая создает объект (содержащий те же свойства, что и диаграмма, заголовок, подделка) и использование System.Web.Script.Serialization.JavaScriptSerializer для сериализации и вывода диаграммы. На странице пользователя вы можете использовать jquery, чтобы сделать ajax-вызов службе REST, а затем инициализировать диаграмму с возвращенными данными. Я делаю то же самое прямо сейчас (в PHP однако). – gremo

+0

Спасибо @ Gremo! Можете ли вы дать мне пример этого решения, если это возможно? Еще раз спасибо! – Larry

ответ

2

С помощью DotNet.Highcharts можно создать диаграмму на стороне сервера, как вам нравится, без использования JavaScript или JSON. Вот пример, который вы хотели бы сделать с библиотекой:

Highcharts chart = new Highcharts("chart") 
.InitChart(new Chart { DefaultSeriesType = ChartTypes.Column }) 
.SetTitle(new Title { Text = "Total fruit consumtion, grouped by gender" }) 
.SetXAxis(new XAxis { Categories = new[] { "Apples", "Oranges", "Pears", "Grapes", "Bananas" } }) 
.SetYAxis(new YAxis 
      { 
       AllowDecimals = false, 
       Min = 0, 
       Title = new YAxisTitle { Text = "Number of fruits" } 
      }) 
.SetTooltip(new Tooltip { Formatter = "TooltipFormatter" }) 
.SetPlotOptions(new PlotOptions { Column = new PlotOptionsColumn { Stacking = Stackings.Normal } }) 
.SetSeries(new[] 
      { 
       new Series 
       { 
        Name = "John", 
        Data = new Data(new object[] { 5, 3, 4, 7, 2 }), 
        Stack = "male" 
       }, 
       new Series 
       { 
        Name = "Joe", 
        Data = new Data(new object[] { 3, 4, 4, 2, 5 }), 
        Stack = "male" 
       }, 
       new Series 
       { 
        Name = "Jane", 
        Data = new Data(new object[] { 2, 5, 6, 2, 1 }), 
        Stack = "female" 
       }, 
       new Series 
       { 
        Name = "Janet", 
        Data = new Data(new object[] { 3, 0, 4, 4, 3 }), 
        Stack = "female" 
       } 
      }); 

Вы можете найти много примеров ASP.NET MVC здесь: http://dotnethighcharts.codeplex.com/releases/view/80650

+0

Большое спасибо @ Vangi! – Larry

Смежные вопросы