2013-10-15 3 views
1

나는이 문제에 대해 몇 시간을 보냈지 만 해결 방법을 모르는 것 같습니다. 나는이 같은 스택 막 대형 차트를 만들려고 해요Kendo의 동적 시리즈 UI 막대 차트

:

http://demos.kendoui.com/dataviz/bar-charts/stacked-bar.html

내가 ASP .NET MVC (면도기)를 사용하고 있습니다. 현재 이곳에

@(Html.Kendo().Chart() 
    .Name("chart") 
    .Title("chart") 
    .Legend(legend => legend 
     .Position(ChartLegendPosition.Bottom) 
    ) 
    .SeriesDefaults(seriesDefaults => 
     seriesDefaults.Bar().Stack(true) 
    ) 
    .Series(series => 
    { 

     series.Bar(new double[] { 4 }); 
     series.Bar(new double[] { 2 }); 
     series.Bar(new double[] { 7 }); 

    }) 
    .CategoryAxis(axis => axis 
     .Categories("Machine") 
     .MajorGridLines(lines => lines.Visible(false)) 
    ) 
    .ValueAxis(axis => axis 
     .Numeric() 
     .Labels(labels => labels.Format("{0}")) 
     .Max(24) 
     .Line(line => line.Visible(false)) 
     .MajorGridLines(lines => lines.Visible(true)) 
    ) 
    .Tooltip(tooltip => tooltip 
     .Visible(true) 
     .Template("#= series.name #: #= value #") 
    ) 

)

내가 직면하고있어 문제 : 다음

은 몇 가지 예제 코드입니다. Bar (새로운 double [] {4}); 내 차트에 값 4를 추가합니다. 문제는 내가 얼마나 많은 시리즈가 있을지 알지 못하는 코드를 작성하는 순간입니다. 이는 데이터베이스의 데이터에 의해 결정됩니다. 예를 들어 5 개의 레코드가 있다면 5 개의 시리즈가 추가되어야합니다.

이러한 시리즈를 추가하는 방법에 대해 알고 계신가요?

건배!

답변

2

simmilar 문제가있는 다른 사람들에게는 제가 해결 방법을 찾은 것 같습니다.

@{ 
List<List<int>> myList = new List<List<int>>(); 
myList.Add(new List<int> { 7 }); 
myList.Add(new List<int> { 2 }); 
myList.Add(new List<int> { 3 }); 
myList.Add(new List<int> { 4 }); 
}   

... 

.Series(series => 
     { 
      for (int i = 0; i < 4;i++) 
      { 
       series.Bar(myList[i]); 
      } 

     }) 
... 

검도 Ui 차트가 목록을 가져오고 싶으므로 목록 목록을 만들어야했습니다. 루프를 사용하여 원하는 데이터를 반복하는 것보다. 이렇게하면 데이터를 하나의 범주에만 쌓을 수 있습니다.

일련 번호를 변수로 사용할 수 있습니다 (모델을 통해 뷰로 전달됨)