Ensemble pré-défini de la valeur pour le filtre en Kendo UI Grille
Je veux mettre un définis par l'utilisateur recherche une valeur dans un filtre sur un kendo de la grille. Dès que l'utilisateur ouvre le filtre, la valeur sera placé dans la zone de recherche. Tout conseil serait grandement apprécié.
C'est la même question à Ensemble de filtre par défaut pour le Kendo UI Grille sauf que je suis en utilisant angular js et je veux une chaîne définie par l'utilisateur valeur de filtre:
C'est la manière dont je construis mon réseau. Je suis à l'aide d'angular js pour créer un div avec des attributs personnalisés. La plupart des attributs remarquables sont sg-grid
(le kendo grille elle-même), sg-filterable
(défini à true pour indiquer que cette grille devrait être filtrables) et sg-predefine-filter
(également définie sur true pour indiquer que cette grille du filtre doit avoir une chaîne de caractères entrés dans la zone de recherche lorsque l'on ouvre):
-
Balisage
<div sg-grid sg-data="api/grid/accounts" sg-columns="accountId,name,pricingFrequency,shortName,status" sg-filterable="true" sg-predefine-filter-value="true" </div>
-
De script (simplifié de démo ici)
angular.module('sgComponents').directive('sgGrid', [ return { restrict: 'AE', scope: { filterable: @sgFilterable, predefineFilterValue: @sgPredefineFilterValue}, template: '<div class="sg-grid">\ <div class="pager-bar">\ <div></div>\ //THE KENDO GRID </div>\ </div>', link: function(scope, element, attrs) { buildGrid(); function buildGrid() { var grid = element.find(':nth-child(2)'); //2nd DIV IN THE TEMPLATE var gridOptions = buildGridOptions(scope, attrs, grid); grid.kendoGrid(gridOptions); //build the grid }; /** Builds the options for the grid */ function buildGridOptions(scope, attrs, grid) { if (scope.filterable === 'true') { opts.filterable = {}; opts.filterable.operators = {}; opts.filterable.operators.string = {} if (scope.predefineFilterValue === 'true') { //set a pre-defined value if true opts.filterable.operators.string = { eq: 'Is equal to', value:'Test' } } else { //just show the filter option opts.filterable.operators.string = { eq: 'Is equal to' } } } } } }; ]);
-
Voici une image de la console de log:
Le résultat. Comme vous pouvez le voir, ma valeur est ajoutée comme une autre option de filtre. Je ne veux pas de cela, je veux qu'il soit dans la zone de saisie de la valeur que!
OriginalL'auteur Tone | 2013-11-28
Vous devez vous connecter pour publier un commentaire.
Enfin trouvé un kendo forum question qui m'ont mis dans la bonne direction!
La solution est de ne pas ajouter de l'ensemble de pré-filtre de la valeur lors de la construction de la grille, mais le faire une fois que la grille a fini de construire à l'aide de la kendoGrid.source de données.l'objet de filtre:
OriginalL'auteur Tone
Vous devez spécifier le
filter
option sur la source de données de la grille.Cela devrait faire l'affaire.
[]
dansfilter
ne sont pas nécessaires. Au moins, ils ne sont pas dans la documentation (docs.telerik.com/kendo-ui/api/javascript/data/...).OriginalL'auteur Nerrve