2

階層スタイルの剣道グリッドがありますが、内側のグリッドはクライアントテンプレートを受け入れていないようです。(コードに関係のないグリッド構成列を削除しました)
クライアントテンプレートを次のようにしたいと思います <a title="#=AlarmStatusDescription#">#=AlarmStatus#</a> が、ClientTemplateに単純な文字列以外のものを入れると、グリッド全体が読み込まれません。

私はもう試した

  • .ClientTemplate("#:AlarmStatus#")
  • .ClientTemplate("#=AlarmStatus#")
  • .ClientTemplate("<div class="myclass"></div>")別の<script type="text/html" id="myclass">#=AlarmStatus#</script>

    @(Html.Kendo().Grid<AccountModel>()

                .Name("Accounts_#=Id#")
                .Columns(columns =>
                             {
    
    columns.Command(command => command.Custom("Details").Click("showDetails")).Width(75);
    columns.Bound(o => o.AccountName).Width(150);                  
    columns.Bound(o => o.AlarmStatus).Width(100).ClientTemplate("#:AlarmStatus#");`
    
                                 })
                    .DataSource(dataSource => dataSource
                        .Ajax()
                        .Model(model =>{model.Id(p => p.AccountId);})
                        .Read(read => read.Action("DetailRead", "Csr", new { personId = #=Id#" }))
                    )
                    .Editable(editable => editable.Mode(GridEditMode.PopUp))
                    .ToClientTemplate()
            )
    
4

2 に答える 2

18

シャープなシンボルをエスケープする必要があります。そうしないと、外部グリッドがこの「#:AlarmStatus#」式を評価しようとします。また、おそらく外部グリッドのAlarmStatus(内部グリッドのプロパティ)などのフィールドがないため、例外が発生します。このようにエスケープする場合、クライアントテンプレートは外部グリッドによってスキップされ、内部グリッドによって適切に評価される必要があります。

.ClientTemplate("\\#= AlarmStatus \\#")

私はあなたがアイデアを得たことを願っています

于 2012-12-09T18:09:03.917 に答える
1

次を使用する必要があります.ClientTemplate("#= AlarmStatus #")。私はあなたが引用符を逃したと思います"

于 2012-12-08T00:17:38.047 に答える