Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

210
Vistas
¿Hay alguna forma de establecer varios filtros de columnas personalizados en una tabla PrimeNG?

Logré agregar solo un filtro personalizado en mi tabla.

Vista:

 <th colspan="2"> <p-columnFilter field="campaigns" [showMenu]="false" [matchMode]="'customFilter1'"> <ng-template pTemplate="filter" let-value let-filter="filterCallback"> <p-dropdown [options]="mainFilterListOfCountries" [resetFilterOnHide]="true" [(ngModel)]="selectedCountryToFilter" (onChange)="filter($event.value)"> //More code </p-dropdown> </ng-template> </p-columnFilter> </th> <th colspan="2" > <p-columnFilter field="affiliateTypes" [showMenu]="false" [matchMode]="'customFilter2'"> <ng-template pTemplate="filter" let-value let-filter="filterCallback"> <p-selectButton [options]="activeOrAllAffiliatesMainFilterOptions" [(ngModel)]="selectedStatus" (onChange)="filter($event.value)" optionLabel="label"> </p-selectButton> </ng-template> </p-columnFilter> </th>

Componente:

 ngOnInit(): void { this.filterService.register('customFilter1', (value, filter): boolean => { if (filter.option === "all") { return true; } if (value && value.length) { return true; } else { return false; } });}

Necesito agregar algunos filtros personalizados más.

Tal vez algo como esto (?):

Componente:

 ngOnInit(): void { this.filterService.register([customFilter1 , customFilter2 ,....], (value, filter): boolean => { if(customFilter1){ if (filter.option === "all") { return true; } if (value && value.length) { return true; } else { return false; } } else if(customFilter2){ if (value && value.length) { return true; } else { return false; } } });

}

Supongo que el problema es que no puedes registrarte varias veces en el mismo servicio en el mismo componente...

Quiero decir que probablemente haya una manera, simplemente no es que yo sepa...

  • Angular : 11
  • PrimeNG: 11.4.4
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Esto es antiguo pero... Tal vez sea obvio o no entiendo tu problema, pero ¿por qué no los registras a ambos como

 ngOnInit(): void { this.filterService.register('customFilter1', (value, filter): boolean => { //customFilter1 stuff }); this.filterService.register('customFilter2', (value, filter): boolean => { //customFilter2 stuff }); }

Porque esencialmente está colocando 2 devoluciones de llamada en un mapa por nombre de clave (el bit customFilter1/2 como clave). El valor que se envía se configura a partir del marcado de la tabla y la columna que seleccionó para aplicar el filtro.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda