Desidero impostare un valore di ricerca definito dall'utente in un filtro su una griglia di kendo. Non appena l'utente apre il filtro, il valore verrà inserito nella casella di ricerca. Qualsiasi consiglio sarebbe molto apprezzato.Imposta il valore predefinito per il filtro nella griglia dell'interfaccia utente Kendo
Questo è simile domanda a Set default filter for Kendo UI Grid tranne che sto usando js angolari e voglio un valore di filtro stringa definita dall'utente:
Questo è come io costruisco la mia griglia. Sto usando angular js per creare un div con attributi personalizzati. Gli attributi più importanti sono sg-grid
(la griglia di kendo stessa), sg-filterable
(impostata su true per indicare che questa griglia deve essere filtrata) e sg-predefine-filter
(impostata anche su true per indicare che il filtro di questa griglia deve avere una stringa immessa nella casella di ricerca quando si apre):
Markup
<div sg-grid sg-data="api/grid/accounts" sg-columns="accountId,name,pricingFrequency,shortName,status" sg-filterable="true" sg-predefine-filter-value="true" </div>
Scripting (semplificato per demo qui)
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' } } } } } }; ]);
Ecco un'immagine del log della console:
L'esito. Come puoi vedere, il mio valore viene aggiunto come un'altra opzione di filtro. Non voglio questo, voglio che sia nella casella di input come valore!
Solo un commento: penso che quei '[]' in 'filtro' non sono necessari. Almeno non sono nella documentazione (http://docs.telerik.com/kendo-ui/api/javascript/data/datasource#configuration-filter.field). – Andrew