2013-12-17 4 views
1

누적 기둥 형 차트를 작성 중입니다. 나는 일련 번호를 알지 못하므로 foreach을 사용하여 각 시리즈를 구성합니다. 각 시리즈에 대한 카테고리 라벨이 필요합니다. 일반적으로 이와 비슷한 내용의 경우 범주 표현을 사용하지만 건물 방법과 관련하여이를 수행하는 방법을 알 수 없습니다. 다음은 코드를 참조하기 위해 레이블이없는 모양입니다. 동적 스택 가로 막 대형 차트의 범주 레이블 설정 방법

enter image description here

어떤 도움

주시면 감사하겠습니다.

@(Html.Kendo().Chart() 

.Name("chart") 

.Theme("flat") 

.Title("Issues Waterfall") 

.DataSource(ds => ds 

    .ServerOperation(false) 

) 

.Series(series => 

{ 

    series.Column(new double[] { 100 }).Name("Total").Color("Blue").Stack("Total"); 



    foreach (var resp in Model.listResponsibleDowntime) 

    { 

     series.Column(new double?[] { resp.percent_pad }).Name(resp.resp_name).Color("White").Opacity(0).Labels(false).Tooltip(false).Stack(resp.resp_name); 

     series.Column(new double?[] { resp.percent_downtime }).Name(resp.resp_name).Color(resp.resp_color).Labels(lables => lables.Format("{0:n2}%").Visible(true).Position(ChartBarLabelsPosition.OutsideEnd)).Stack(resp.resp_name); 

    } 



    series.Column(new double?[] { Model.oee }).Name("Actual").Color("Green").Stack("Actual").Labels(lables => lables.Format("{0:n2}%").Visible(true).Position(ChartBarLabelsPosition.OutsideEnd)); 



}) 

.CategoryAxis(axis => axis 

    .MajorGridLines(lines => lines.Visible(false)) 

    .Labels(model => model 

     .Rotation(0) 

     .Visible(true) 

    ) 

    //.Categories(Model.listCategories) 

) 

.Legend(legend => legend 

    .Position(ChartLegendPosition.Top) 

    .Margin(20, 50, 20, 50) 

    .Visible(false) 

) 

.ValueAxis(axis => axis 

    .Numeric() 

    .Min(0) 

    .Max(100) 

    .Labels(labels => labels.Format("{0:n0}%")) 

) 

.Tooltip(tooltip => tooltip 

    .Visible(true) 

    .Template("#= series.name #: #= kendo.format('{0:n2}', value) #") 

) 

)

답변

0

나는 오래된 알고 있지만이 Telerik의 문서 때문에 늘 다음 사람을 도움이 될 수 있습니다. 당신의 foreach에서

당신은 열 빌더에게는 IEnumerable 클래스를 통과 한 후 필드가 범주이고 가치있는 인을 알려줄 필요가 :

series.Column(stacked.Columns).CategoryField("Category").Field("Value").Name(stacked.StackName).Color(stacked.Colour); 
:

public class KendoStackedColumnModel 
    { 
     public string StackName { get; set; } 
     public string Colour { get; set; } 

     public IEnumerable<KendoColumnModel> Columns { get; set; } 

     public class KendoColumnModel 
     { 
      public decimal Value { get; set; } 
      public string Category { get; set; } 
     } 

    } 

가 그리고 foreach 문에