在加载时在布尔字段列上设置初始过滤器

时间:2017-08-20 11:58:09

标签: kendo-grid filtering

Telerik Kendo MVC Grid - How do I set onload/initial filter equals True with checkbox columns?

我试图在初始加载时将True / False列过滤器设置为True。我的Viewmodel有一个名为IsHoliday的bool属性。我已按照上面链接中的示例进行操作,但我在启动时没有显示任何记录。我的读取操作返回引用链接中建议的IEnumerable的JSON。我的观点如下:

@(Html.Kendo().Grid<HolidayVM>()
.Name("h_grid")  
.Editable(editable => editable.Mode(GridEditMode.PopUp))
.DataSource(dataSource => dataSource
    .Ajax()
    .PageSize(15)
    .ServerOperation(false)
    .Events(events => events.Error("grid_error")) // Handle the "error" event
    .Model(model =>
    {
        model.Id(m => m.Date);
        model.Field(m => m.Date).Editable(false);
    })
    .Filter(f => f.Add(m => m.IsHoliday.Equals(true)))
    .Read(read => read.Action("Holiday_Read", "Holiday"))
    .Update(up => up.Action("Holiday_Update", "Holiday").Data("grid_sendAntiForgery"))
)
.Columns(columns =>
{
    columns.Bound(p => p.Date).Width(30).Format("{0:dd-MMMM}");
    columns.Bound(p => p.HolidayText).Width(100).Filterable(false);
    columns.Bound(p => p.IsHoliday)
    .ClientTemplate("<input type='checkbox' #= IsHoliday ? '' : checked='checked' # disabled='disabled' />")
        .Filterable(ftb => ftb.Cell(cell => cell.Operator("Is equal to")))           
        .Width(30);
    columns.Command(cmd =>
    {
        cmd.Edit().HtmlAttributes(new { title = "Edit" });
    }).Title("Commands").Width(25);
})
.Pageable()
.Sortable()
)

理想情况下,我希望我的网格看起来像附加图像,在加载时,IsHoliday设置为True Grid on initial load

1 个答案:

答案 0 :(得分:0)

我终于明白了。

.Filter(f => f.Add(m => m.IsHoliday).IsEqualTo(true))

而不是

.Filter(f => f.Add(m => m.IsHoliday.Equals(true)))