2014-06-18 2 views
2

Я должен отображать 3 диаграммы, как часть панели, на одной странице.DotnetHighCharts - Несколько диаграмм, расположенных на одной странице

Демо-проект dotnetHighCharts включает в себя «Как» для нескольких диаграмм. Это, однако, похоже, что диаграммы будут просто расположены ниже друг друга. В моем представлении довольно много форматирования html, где я хочу отображать диаграммы в контейнерах.

Так что в моем контроллере у меня есть:

public ActionResult Dashboard() 
    { 
     Highcharts chartLine = Chart_Line(); 
     Highcharts chartPie = Chart_Pie(); 

     return View(new Container(new[] { chartLine, chartPie })); 
    } 

Но вместо того, чтобы просто иметь это на мой взгляд:

@model DotNet.Highcharts.Container 

@(Model) 

я должен поместить конкретный графики на определенных местах моей страницы. Так, на мой взгляд, я хотел бы сделать что-то вроде @ (модель [1]) для отображения для отображения 1-й график и т.д.

Я также попытался создать ViewModel:

public class ChartsModel 
{ 
    public Highcharts Chart1 { get; set; } 
    public Highcharts Chart2 { get; set; } 
    public Highcharts Chart3 { get; set; } 
} 

Надеясь, что я мог бы сделать это на моем Вид:

<div> @model.Chart1 </div> 

Но это также представляется невозможным.

В любом случае я могу отображать несколько DotNetHighCharts на одной странице, сохраняя при этом контроль, где их размещать в представлении?

ответ

3

Контроллер

public ActionResult Dashboard() 
{ 
    //NOTE: chart names must be unique! 
    Highcharts chartLine = Chart_Line(); 
    Highcharts chartPie = Chart_Pie(); 
    Highcharts chartColumn = Chart_Column(); 

    var charts = new ChartsModel 
    { 
     Chart1 = chartLine, 
     Chart2 = chartPie, 
     Chart3 = chartColumn 
    } 

    return View(charts); 
} 

Посмотреть

@model ChartsModel 

<div>@Model.Chart1</div> 
<div>@Model.Chart2</div> 
<div>@Model.Chart3</div> 

в вашем Chart_Line() метод, при создании Highcharts, вы должны установить уникальное имя диаграммы,

, например, :

Highcharts chart = new Highcharts("uniqueId") 
+0

Извините, я должен был упомянуть о странном поведении, которое я получаю, когда я это делаю; Используя только 2 диаграммы на этом этапе. Когда я добавляю chart1 в свое представление, он работает. Когда я добавляю диаграмму2, она по какой-то причине отображает диаграмму2, где должен отображаться график 1-го, и ничто в местоположении диаграммы2 (диаграмма1 вообще не отображается). И если я только добавлю Chart2 в представление, он отобразит эту диаграмму как следует. Любая идея, почему это будет так странно, когда оба будут добавлены в представление? – Basquiat

+0

в вашем методе 'Chart_Line()', когда вы создаете «Highcharts», вы должны установить уникальное имя диаграммы для экзамена: «Highcharts chart = new Highcharts (« uniqueInd »)' –

+0

Поделитесь своим 'Chart_Line()' и содержимое методов 'Chart_Pie()', пожалуйста. –

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