我有一个像这样的Master / Child网格结构:
父网格:
@(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")
)
Child Grid as 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,没有用。
请指教, 谢谢
答案 0 :(得分:7)
#
用于父属性(就像您用于名称gridSubEle_#=EleID#
一样),但对于某些子属性,您必须使用{{#
转义\\
1}}:
cols.Bound(e => e.Rating)
.ClientTemplate("<input type='checkbox' value='1' " +
"\\#if(Rating==1){\\#checked='checked'\\#}\\# />" );