2017-10-09 2 views
0

je la situation suivante, une grille de kendo et je veux sélectionner les opérateurs filtre, cela fonctionne très bien:comment définir la grille de kendo opérateurs filtrables mais continuer à utiliser sa chaîne par défaut

var filters_op = { 
    operators: { 
    string: { 
     eq: "Is equal to", 
     neq: "Is not equal to", 
     contains: "Contains" 
    } 
    } 
} 

element.kendoGrid({ 
    dataSource: dataSource, 
    filterable: filters_op, 
    columns: ... 
    ... 
}); 

Cependant ma demande est multi-langue, et précédent j'avais la propriété filterable: true (ou faux) et le vendeur kendo global faire le travail de traduire et apporte ses propres opérateurs filtrables. D'autre part, les opérateurs par défaut de Kendo Global contiennent des filtres comme "commence par", "Est après", "Est après ou égal à" ... ce que mon application ne supporte pas encore, et quand Je les contourne, je perds le support de traduction de K.Global

Est-il possible d'avoir à la fois, sélectionnez ce que je veux et le traduire de K.Glbl ensemble?

Répondre

2

Vous ne pouvez pas choisir lequel des opérateurs kendo global sera traduit sur le paramètre filterable de votre fonction kendoGrid. Kendo ne le permet pas encore.

Toutefois, vous pouvez traduire les opérateurs par vous-même (ou par une bibliothèque tierce) et les fournir sur le filters_op. Cela remplacera la valeur par défaut du kendo filters et les traduira également.

Je vous recommande d'utiliser la méthode de traduction I18n.t du i18n pour ce faire. Votre code ressemblera à ceci, par exemple:

var filtersOp = { 
operators: { 
    string: { 
    eq: I18n.t('kendo.grid.filterable.operators.string.eq'), 
    neq: I18n.t('kendo.grid.filterable.operators.string.neq'), 
    contains: I18n.t('kendo.grid.filterable.operators.string.contains') 
    }, 
    date: { 
    eq: I18n.t('kendo.grid.filterable.operators.date.eq'), 
    neq: I18n.t('kendo.grid.filterable.operators.date.neq') 
    }, 
    enums: { 
    eq: I18n.t('kendo.grid.filterable.operators.enums.eq'), 
    neq: I18n.t('kendo.grid.filterable.operators.enums.neq') 
    } 
} 

... 

element.kendoGrid({ 
    ... 
    filterable: filtersOp, 
    columns: ... 
    ... 
}) 

Comme vous pouvez le voir, la bibliothèque I18n traitera cette procédure de traduction.