1

Dataviz と MVC を使用して、積み上げグラフ (動作中) を作成したいと考えています。しかし、そのシリーズの値がゼロより大きい場合は、シリーズ ラベルのみを表示したいと考えています。

ここにマークアップがあります

@(Html.Kendo().Chart<ChartModel>(Model)
    .Name("chart")
    .Title("Pending Orders")
    .Legend(legend => legend
        .Visible(false)
    )
    .SeriesDefaults(seriesDefaults =>
        seriesDefaults.Column().Stack(true)
        .Labels(labels => labels.Background("transparent").Visible(true).Font("40px sans-serif").Position(ChartBarLabelsPosition.Center).Color("black"))
    )
    .Series(series =>
    {
        series.Column(model => model.OnTimeCount).Name("On Time").Color("Green");
        series.Column(model => model.WarningCount).Name("Warning").Color("Yellow"); 
        series.Column(model => model.AlertCount).Name("Alert").Color("Red"); 
    })

    .CategoryAxis(axis => axis
        .Categories(model => model.Day)
        .MajorGridLines(lines => lines.Visible(false))
    )
    .ValueAxis(axis => axis
        .Numeric()
        .Line(line => line.Visible(false))
        .MajorGridLines(lines => lines.Visible(false))
    )
    .Tooltip(tooltip => tooltip
        .Visible(true)
        .Template("#= series.name #: #= value #")
    )
)

シリーズのデフォルトでは、ラベルは表示に設定されています。条件付きにするためにそこに何を配置すればよいかわかりません。ランバ式を試しましたが、うまくいきませんでした。系列値にアクセスする方法が必要だと考えていますが、その方法がわかりません。

問題のチャックはこちら

.SeriesDefaults(seriesDefaults =>
    seriesDefaults.Column().Stack(true)
    .Labels(labels => labels.Background("transparent").Visible(true).Font("40px sans-serif").Position(ChartBarLabelsPosition.Center).Color("black"))
)
4

2 に答える 2

0

あなたが考えている方法でそれを行うことができるかどうかはわかりません。可能であれば、条件付きステートメントでラベルのテンプレートを使用する必要があります。

.Labels(labels => labels.Template("#: dataItem.Value #")...

ラベルを表示するためだけに View Model にフィールドを追加し、値がゼロの場合は空の文字列を入力する方が簡単かもしれません。

于 2014-05-12T07:07:53.910 に答える