1

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

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

看法

@(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)))
)

模型

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; }

}
4

1 回答 1

2

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

因此,在您的情况下添加默认过滤器时,您总是需要指定一个“操作员”,我认为您需要IsEqualTo(true)

.Filterable(f => f.Filters(fi => fi.Add(fis => fis.IsActive).IsEqualTo(true))) 
于 2013-03-01T21:04:35.910 回答