Saltar al contenido

cómo preestablecer el filtro de columna en ag-grid

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:

  1. 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’.

  2. Esta respuesta sugiere establecer el gridOptions propiedad deltaRowDataMode=true

  3. 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.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *