Telerik MVC3 Grid - 是否可以同时使用Template和ClientTemplate?

时间:2012-07-19 15:47:53

标签: asp.net-mvc templates telerik-grid

是否可以同时使用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 />");
    })

也许有另一种方法来实现这个目标?

2 个答案:

答案 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实际比较了。