2012-05-09 11 views
5

Documentación de Ext.data.Store método find dice:tienda Extjs encontrar todos

Busca el índice del primer registro coincidente en esta tienda por un valor de campo específico .

Mi pregunta es ¿cómo puedo encontrar los índices de todos los registros coincidentes en esta tienda?

+1

la versión ExtJS sería útil – sra

+0

La versión es ExtJS 4 – Sebastian

Respuesta

1

Extjs store tiene pocos métodos que devuelven el primer registro coincidente por un valor de campo específico. Para obtener todos los registros filtrados, debe usar cada función & & que coincida o filtre los registros deseados.

1

Si está usando ExtJS 3.x, suponiendo que tiene el almacén de datos referenciado por store

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

devuelve una matriz que contiene los índices de los registros coincidentes.

+0

de 4.x 'filtro()' ya no devuelve nada. También 'Ext.pluck' se encontrará en Ext.Array.pluck. El otro punto es que la tienda se filtra después de eso. – sra

+0

Como comentó, la versión ExtJS sería útil. Mi respuesta es correcta para ExtJS 3.4 – malteo

8

Creo que la mejor función que satisface sus necesidades es queryBy() porque devuelve una matriz de registros coincidentes.

Aún puede usar each() para verificar si el Modelo coincide con los criterios y luego agregarlos a una matriz. Pero esta función es más apropiada para atravesar todos los registros en la tienda, no solo para "filtrar" datos.

+1

El [método 'query'] (http://docs.sencha.com/ext-js/4-1/#!/api/Ext.data.Store-method-query) también proporciona una versión abreviada de 'queryBy'. – GreenGiant

Cuestiones relacionadas