行中的Kendo DropDownList Kendo Grid过滤器

时间:2016-09-29 15:06:22

标签: javascript kendo-ui kendo-grid kendo-dropdown

我正在尝试将标准字符串过滤器的默认行为更改为组合框(下拉列表)。

当我使用与所需值不同的显示名称时,我遇到了一些问题。

例如:

我的应用程序中有i18n,因此组合中的每个项目都应以正确的语言显示,特定标签所指的值仍然必须保持不变。

这是你通常所期望的。

问题是我做不到。

这是我的gridOptions的代码:

public gridOptions() {
    return {
        scrollable: false,
        selectable: 'row',
        schema: {
            model: { id: 'id' }
        },
        filterable: {
            messages: {
                isFalse: 'Is false',
                isTrue: 'Is True'
            }
        },
        columns: [{
                field: 'name',
                title: '{{\'name\' | translate }}'
            },
            {
                field: 'combo',
                title: '{{\'combo\' | translate }}',
                filterable: {
                    extra: false,
                    operators: {
                        string: {
                            eq: 'Is Equals to'
                        }
                    },
                    ui: (e) => { this.filter(e) },
                    cell: {
                        showOperators: false,
                        template: (c) => { this.filterRow(c) },
                    }
                }
            }
        ]
    };
}

使用两个创建下拉列表的函数:

private filter(element) {
    this.myService.getData().then( data => {
        element.kendoDropDownList(
            {
                dataTextField: 'displayName',
                dataValueField: 'name',
                dataSource: data,
                optionLabel: '--select a value--'
            }
        };
    });
}

private filterRow(container) {
    this.filter(container.element);
}

我期望过滤器显示已翻译的字段(例如:名称为“绿色”时为绿色),并且“name”属性的值用于过滤。

相反,当我在组合框中选择某些内容时,选择不会被过滤器隐藏。

奇怪的是,如果我将字段'name'用作dataTextField而将任何其他字段用作dataValueField(我使用'isworkingfornoreason'作为字段!!)一切正常。过滤器有效,但组合框元素显然是默认字符串,未翻译。

你能帮我弄清楚发生了什么吗?

0 个答案:

没有答案