4

次のようなマスター/子グリッド構造があります。

親グリッド:

@(Html.Kendo().Grid<ElementViewModel>()
    .Name("gridEle")
    .Columns(cols =>
    {
        cols.Bound(e => e.EleNum)
    })
    .DataSource(dataSource => dataSource
        .Ajax()
        .Read(read => read.Action("GetElements", "Rating", pi))   
    )
    .ClientDetailTemplateId("tempSubEle")          
)

DetailTemplate としての子グリッド:

 <script id="tempSubEle" type="text/kendo-tmpl">

    @(Html.Kendo().Grid<SubElementViewModel>()
        .Name("gridSubEle_#=EleID#")
        .Columns(cols =>
        {
             cols.Bound(e => e.Rating)      
                 .ClientTemplate("<input type='checkbox' value='1' " +
                                "#if(Rating==1){#checked='checked'#}# />" );
        })
        .DataSource(dataSource => dataSource
            .Ajax()
            .Read(read => read.Action("GetSubElementsByElementID", "Rating", new {eID = "#=EleID#" }))
        )
       .ToClientTemplate()
    )
</script>

問題:

ClientTemplate 列に #if{# ... #}# ステートメントがありますが、評価値は現在の子グリッドではなく親グリッドからのものです (親グリッドには「評価」という名前の列もあります)。これは親グリッドからのものです。Rating を子グリッドのみに存在する列、つまり SubEleID に変更すると、ブラウザで SubEleID が見つからないというエラーが表示されます。

質問:

では、Rating が Child Grid 値を取得するための構文は何ですか? 試しに、data.Rating、または $(this).Rating も試してみましたが、どれも機能しませんでした。

アドバイスしてください、ありがとう

4

1 に答える 1

7

#一部の剣道テンプレートでは、親プロパティに使用されます ( name : に使用するように、一部の子プロパティではwith :gridSubEle_#=EleID#をエスケープする必要があります) 。#\\

         cols.Bound(e => e.Rating)      
             .ClientTemplate("<input type='checkbox' value='1' " +
                            "\\#if(Rating==1){\\#checked='checked'\\#}\\# />" );
于 2013-04-26T08:16:37.633 に答える