动态列上的剑道网格过滤器

时间:2013-05-13 11:01:00

标签: javascript kendo-ui kendo-grid

我正在开发一个Kendo Grid,它有一个Status列,它是几个其他列的状态汇总。我将各个状态跟踪为整数值,聚合列应显示最少的状态。现在,使用模板,我能够很好地呈现Status列的文本,但问题是我希望此列可以过滤。这是在计算值时无效。

在DataSource中,这是我声明自定义字段的方式,

schema: {
    model: {
        Status: function () {
            return helper.GetStatus(this.EntriesStatus);
        }
    }
}

这是我在列定义中使用它的方式,

{
    field: "Status",
    title: "Status",
    width: "100px",
    filterable: true,
    template: kendo.template("#if (HasError) {# <strong class='clrRed' > \#= Status() #\ </strong> #} else { # \#= Status() #\ #} #"),
    hidden: false,
    menu: false
}

有人能指出我出错的地方或更有效的出路吗?

1 个答案:

答案 0 :(得分:1)

不是将Status定义为model中的函数,而是将其作为计算字段添加到model.parse中。例如:

schema: {
    parse: function (d) {
        $.each(d, function (idx, elem) {
            elem.Status = helper.GetStatus(elem.EntriesStatus);
        });
        return d;
    }
}

然后在模板中移除()

template: kendo.template("#if (HasError) {# <strong class='clrRed' > \#= Status #\ </strong> #} else { # \#= Status #\ #} #"),