Mantén la atención ya que en esta sección hallarás la contestación que buscas.
Solución:
Editar: AgGrid incluyó una devolución de llamada onFirstDataRendered en la versión 24.0, como se indica en comentarios posteriores. La respuesta original a continuación ahora solo es relevante para las versiones anteriores a esta funcionalidad.
onFirstDataRendered(params)
var filterComponent = params.api.getFilterInstance("isActive");
filterComponent.setModel(
type: "greaterThan",
filter: 0
);
filterComponent.onFilterChanged();
Reprodujo su problema en un par de sus ejemplo plunks más viejos, parecían aliviarse agregando un pequeño retraso. Solo aventurándome a adivinar que tal vez el DOM aún no esté completamente listo, aunque la cuadrícula sí lo está.
Versiones pre-onFirstDataRendered:
onGridReady(params)
params.api.sizeColumnsToFit();
setTimeout(() =>
var filterComponent = params.api.getFilterInstance("isActive");
filterComponent.setModel(
type: "greaterThan",
filter: 0
);
filterComponent.onFilterChanged();
,150)
Terminé haciendo esto.
var FilterComponent = gridOptions.api.getFilterInstance('Status');
FilterComponent.selectNothing(); //Cleared all options
FilterComponent.selectValue('Approved') //added the option i wanted
FilterComponent.onFilterChanged();
Creo que el problema es que la cuadrícula restablece el filtro cuando se cargan nuevas filas. Hay varias formas de abordar esto:
-
Los tipos de filtro predefinidos tienen un parámetro de filtro llamado newRowsAcción
https://www.ag-grid.com/javascript-grid-filter-text/#params
newRowsAcción: Qué hacer cuando se cargan nuevas filas. El valor predeterminado es restablecer el filtro. Si desea mantener el estado del filtro entre cargas de fila, establezca este valor en ‘mantener’.
-
Esta respuesta sugiere establecer el
gridOptions
propiedaddeltaRowDataMode=true
- También puede escuchar uno de los eventos de grilla que se emiten cuando cambia la fecha de grilla y luego aplicar el filtro https://www.ag-grid.com/javascript-grid-events/#miscellaneous:
rowDataChanged, rowDataUpdated
Todos estos deberían mantener el filtro cuando los datos cambian, pero creo que aún necesita un poco de lógica adicional (establecer una bandera) si desea el filtro solo en la primera carga.
Puntuaciones y reseñas
Tienes la opción de añadir valor a nuestra información colaborando tu experiencia en los comentarios.