Telerik Grid ASP.NET MVC4网格二进制运算符问题

时间:2013-03-01 20:43:36

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

我在ASP.NET MVC4视图中有一个Telerik Grid,它抛出了一个非常奇怪的错误。我有这个代码在应用程序的其他区域工作没有问题...删除了IsActive属性的客户端模板代码仍然会发生错误。当我删除.Filterable(...)电话时,错误就消失了。

  

没有为类型定义二元运算符Equal   'System.Boolean'和'System.Object'。

VIEW

@(Html.Telerik().Grid(Model)
    .Name("Grid")
    .DataKeys(keys =>
      {
          keys.Add(c => c.Id);
      })
    .Columns(columns =>
      {
          columns.Bound(c => c.Id).Hidden();
          columns.Bound(c => c.Name).Width(150);
          columns.Bound(c => c.IsActive).Width(100).Title("Active?")
             .HeaderHtmlAttributes(new { style = "text-align: center;" })
             .ClientTemplate("<center><input type='checkbox' disabled='disabled' 
                name='IsActive' <#= IsActive? checked='checked' : '' #> /></center>");
      })
    .Filterable(f => f.Filters(fi => fi.Add(fis => fis.IsActive)))
)

MODEL

public class Organization
{
    public Organization()
    {
        IsActive = true;
    }

    public int Id { get; set; }

    [Required]
    [MinLength(5)]
    [MaxLength(300)]
    public String Name { get; set; }

    [Required]
    public bool IsActive { get; set; }

}

1 个答案:

答案 0 :(得分:2)

正如您已经发现问题出在您的Filterable

因此,在您添加默认过滤器时,您始终需要指定“运算符”我认为您需要IsEqualTo(true)

.Filterable(f => f.Filters(fi => fi.Add(fis => fis.IsActive).IsEqualTo(true)))