【问题标题】:Kendo Grid filtering with an enumeration带有枚举的 Kendo Grid 过滤
【发布时间】:2013-04-11 20:23:32
【问题描述】:

我的模型包含一个枚举,我希望在通过 AJAX 加载网格时对其进行过滤。

.cshtml代码:

@(Html.Kendo().Grid()
    .Name("Grid")
    .Columns(columns =>
        {
            columns.Bound(x => x.Type);
            columns.Bound(x => x.Status); @*This is my enum*@
        })
    .Filterable()
    .DataSource(ds => ds
                        .Ajax()
                        .ServerOperation(true)
                        .Filter(filter => filter.Add(x => x.Status).IsEqualTo(MyEnum.Updated))
                        .Read(read => read.Action("QueryAlerts", "Alert"))))

AJAX POST 上的过滤器请求通过 Status~eq~'updated' 并返回 Input string was not in a correct format 错误。

我删除了对数据源的过滤,并使用过滤控件查看该请求是如何正常传递的,如下所示:Status~eq~2

我已尝试将过滤器值强制转换为整数(例如 filter.Add(x => (int)x.Status).IsEqualTo((int)MyEnum.Updated)),这会导致从模型到 Int32 的无效强制转换错误,这是 Add 方法所期望的。

这个问题可以使用 Razor 解决还是通过 JavaScript 修复?

【问题讨论】:

    标签: kendo-ui kendo-grid


    【解决方案1】:

    您的 x.Status 是什么数据类型?如果它是一个 int 那么你不需要转换它,只需要枚举:

    filter.Add(x => x.Status).IsEqualTo((int)MyEnum.Updated)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多