【问题标题】:Telerik MVC3 Grid - is it possible to use Template and ClientTemplate at the same time?Telerik MVC3 Grid - 是否可以同时使用 Template 和 ClientTemplate?
【发布时间】:2012-07-19 15:47:52
【问题描述】:

可以同时使用模板和客户端模板吗?

我想在模板中进行布尔检查,但不知道如何在没有绑定时将其传递给 ClientTemplate 中的复选框。

    @(Html.Telerik().Grid(Model.Item)
     .Name("Grid")
     .Columns(column =>
       column.Template(x => x.ItemId.Equals(Model.Id))
             .ClientTemplate("<input type='checkbox' checked='<#=????? #>' disabled />");
    })

也许还有其他方法可以实现这一点?

【问题讨论】:

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


    【解决方案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进行的。

    【讨论】:

      【解决方案2】:

      Template 用于服务器绑定,而 ClientTemplate 用于 ajax 或 Web 服务绑定。如果您使用服务器绑定,则不使用 ClientTemplate。如果您使用 ajax 绑定,则不使用模板。使用 ClientTemplate,您可以使用 以类似于服务器端模板的方式嵌入数据绑定表达式。

      .ClientTemplate("<input type='checkbox' checked='<#= (ItemID == Id) #>' disabled />")
      

      您在条件中输入的内容是有限的。我已经能够成功地使用 bool 和 int 比较,但不能使用字符串比较。

      【讨论】:

      • 但是,在这种情况下,Id 不是Model.Item 的属性,因此它在客户端不可用。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-18
      • 1970-01-01
      • 2020-08-09
      相关资源
      最近更新 更多