2012-05-09 16 views
5

Documentazione di Ext.data.Store metodo Find dice:ExtJS negozio trovare tutte

Finds l'indice del primo record corrispondente in questo negozio da un valore di campo specifico .

La mia domanda è come posso trovare gli indici di tutti i record corrispondenti in questo negozio?

+1

la versione ExtJS sarebbe utile – sra

+0

La versione è ExtJS 4 – Sebastian

risposta

1

L'archivio di estensione ha pochi metodi che restituiscono il record con corrispondenza prima per un valore di campo specifico. Per ottenere tutti i record filtrati è necessario utilizzare ogni funzione & & piuttosto che corrispondere o filtrare i record desiderati.

1

Se si utilizza ExtJS 3.x, a patto di avere il vostro archivio dati referenziato da store

Ext.pluck(store.filter('field', 'value'), 'id'); 

restituisce un array contenente gli indici dei record corrispondenti.

+0

da 4.x 'filter()' non restituisce più nulla. Anche Ext.pluck si trova in Ext.Array.pluck. L'altro punto è che il negozio viene filtrato dopo. – sra

+0

Come hai commentato, la versione ExtJS sarebbe stata utile. La mia risposta è corretta per ExtJS 3.4 – malteo

8

Penso che la funzione migliore soddisfatta alle tue esigenze sia queryBy() perché restituisce una matrice di record corrispondenti.

È ancora possibile utilizzare each() per verificare se il Modello corrisponde ai criteri, quindi aggiungerli a un array. Ma questa funzione è più appropriata per attraversare tutti i record nello store, non solo per "filtrare" i dati.

+1

Il metodo ['query'] (http://docs.sencha.com/ext-js/4-1/#!/api/Ext.data.Store-method-query) anche fornisce una versione di collegamento di 'queryBy'. – GreenGiant

Problemi correlati