tutorial examples español extjs

examples - extjs gpl



Filtro de rejilla EXTjs: ¿Cómo borrar el filtro sin recargar la tienda? (4)

En extjs GridFilters, ¿hay alguna manera de borrar los filtros sin volver a cargar la tienda?
Este es el requisito:
Hay una cuadrícula (n. ° 1) y otra cuadrícula (n. ° 2) debajo de la cuadrícula. La cuadrícula (n. ° 1) tiene una lista de identificadores, y cuando se hace clic en una identificación particular, la cuadrícula (n. ° 2) se establece con una lista de registros que pertenecen a esa identificación.
Y el ejemplo podría ser: grid # 1: lista de todos los maangers
grid # 2: lista de todos los empleados para un maanger en particular.

Grid # 2 tiene un filtro: en el nombre del empleado.

El rqmt es: Cuando se cambia una selección en la grilla n. ° 1, borre todos los filtros viejos, pero no relacione la tienda para la grilla n. ° 2 ya que la grilla n. ° 2 se cargará a través de otra función.

Por favor, hágame saber cómo puedo ayudar proporcionando más información


¿Has intentado suspender temporalmente los eventos en la grilla? grid.suspendEvents (); grid.doYourMagic (); grid.resumeEvents ();

la reposición de la tienda probablemente se desencadene por un evento de todos modos.


El método clearFilters () disponible con la clase GridFilter debería poder borrar los filtros. ¿Lo has probado? Además, ¿cuándo se carga la cuadrícula n. ° 2? de acuerdo con su primer párrafo, cuando el usuario selecciona un gerente, los empleados aparecen en la lista. Pero en el segundo párrafo donde usted indicó su requerimiento, ¡usted dijo que la cuadrícula n. ° 2 se carga a través de otra función! Sin embargo, no está claro con eso.


He experimentado el mismo problema pero no con un Grid pero con un DataView, sin embargo, esto podría aplicarse igualmente a su caso. Intenté inicialmente:

var store = this.getStore(); store.suspendEvents(); store.clearFilter(); store.resumeEvents(); store.filter(...);

esto no funcionó, aún se realizaron 2 solicitudes HTTP, una para clearFilter() , una para filter(...) .

Sin embargo, los siguientes trabajos:

var store = this.getStore(); store.getProxy().extraParams[''q''] = keywords; store.load();


Después de algunos pasos de Firebug, encontré que esto funciona bastante bien.

var store = this.getStore(); store.remoteFilter = false; store.clearFilter(); store.remoteFilter = true; store.filter(...);

remoteFilter no parece ser una propiedad documentada, pero suspenderá las llamadas xhr mientras esté configurado en false .

Cuando configura remoteFilter en false, cuando se clearFilter() , se sobrepasa la función load() .