是否可以同时使用Template和ClientTemplate?
我想在模板中进行bool检查,但在没有绑定时不知道如何将它传递给ClientTemplate中的复选框。
@(Html.Telerik().Grid(Model.Item)
.Name("Grid")
.Columns(column =>
column.Template(x => x.ItemId.Equals(Model.Id))
.ClientTemplate("<input type='checkbox' checked='<#=????? #>' disabled />");
})
也许有另一种方法来实现这个目标?
答案 0 :(得分:1)
模板用于服务器绑定,而ClientTemplate用于ajax或Web服务绑定。如果使用服务器绑定,则不使用ClientTemplate。如果您使用的是ajax绑定,则不使用Template。使用ClientTemplate,您可以使用&lt;#=#&gt;以与服务器端模板类似的方式嵌入数据绑定表达式。
.ClientTemplate("<input type='checkbox' checked='<#= (ItemID == Id) #>' disabled />")
您在条件中的内容是有限的。我已经能够成功地使用bool和int比较,但不能进行字符串比较。
答案 1 :(得分:1)
对于这种特殊情况,您不必使用Template
。您可以使用ClientTemplate的嵌入式数据绑定功能(如Daniel所述)来实现您想要的功能,
@(Html.Telerik().Grid(Model.Item)
.Name("Grid")
.Columns(column =>
column.ClientTemplate("<input type='checkbox' checked='<#=ItemId == " + Model.Id + "#>' disabled />");
})
这样你就从服务器传递了变量Model.Id
,而在客户端使用Javascript实际比较了。