Angular PrimeNG Table ColumnFilter Properties
Last Updated :
28 Apr, 2025
Angular PrimeNG is an open-source framework with a rich set of native Angular UI components that are used for great styling and this framework is used to make responsive websites with very much ease. It provides a lot of templates, components, theme design, an extensive icon library, and much more. In this article, we will see the Angular PrimeNG Table ColumnFilter Properties.
The Table component is used to display data in tabular format. The Table component has many properties provided with it that can be used to style and modify the content of the table to suit various needs. The ColumnFilter Properties is used to filter the data according to the filter the column data values.
Angular PrimeNG Table ColumnFilter Properties:
- field(string): It is the name of the property of the data to filter.
- type(string): It is the data type to display a suitable filter and matches. The default value is text.
- display(string): It is the display mode, valid values are row for a separate row and menu for filter menu. The default value is row.
- showMenu(boolean): It is used to set whether to show the overlay menu. The default value is true.
- matchMode(string): It is the default match mode.
- operator(string): It is the default operator, valid values are "and" and "or". The default value is and.
- showOperator(boolean): It specifies if the operator selection is displayed. The default value is true.
- showClearButton(boolean): It specifies whether to display the clear button. The default value is true.
- showApplyButton(boolean): It specifies whether to display the apply button. The default value is true.
- showMatchModes(boolean): It specifies whether to display the match modes dropdown. The default value is true.
- showAddButton(boolean): It specifies whether to display the add a rule button. The default value is true.
- showButtons(boolean): It specifies whether to display the spinner buttons in "numeric" mode. The default value is true.
- hideOnClear(boolean): It specifies whether to hide the overlay on clear. The default value is false.
- placeholder(string): It is the placeholder content to display on input.
- matchModeOptions(SelectItem[]): It is the match mode option to override the global setting.
- maxConstraints(number): It is used to set the number of maximum constraints. The default value is 2.
- minFractionDigits(number): It is the minimum number of fraction digits to use for the numeric type.
- maxFractionDigits(number): It is the maximum number of fraction digits to use for the numeric type.
- prefix(string): It is the text to display before the value for the numeric type.
- suffix(string): It is the text to display after the value for the numeric type. The default value is decimal.
- locale(string): It is the locale to be used in formatting for numeric type.
- localeMatcher(string): It is the locale-matching algorithm for numeric type. The default value is the best fit.
- currency(string): It is the currency to use in currency formatting for the numeric type.
- currencyDisplay(string): It is used to set the currency to display in currency formatting for the numeric type. The default value is the symbol.
- useGrouping(boolean): It is used to set whether to use grouping separators for "numeric" type, such as thousands of separators or thousand/lakh/crore separators.
Syntax:
<th pSortableColumn="title">
<div class="flex justify-content-between
align-items-center">
Title
<p-sortIcon field="title"></p-sortIcon>
<p-columnFilter
type="text"
field="title"
display="menu"
class="ml-auto">
</p-columnFilter>
</div>
</th>
Creating Angular application & Module Installation:
Step 1: Create an Angular application using the following command.
ng new geeks_angular
Step 2: After creating your project folder i.e. geeks_angular, move to it using the following command.
cd geeks_angular
Step 3: Install PrimeNG in your given directory.
npm install primeng --save
npm install primeicons --save
Project Structure: The project structure will look like the following:
Example 1: In the following example, we have a Table with a Column filter.
HTML
<h1 style="color:green;text-align:center;">GeeksforGeeks</h1>
<h3>Angular PrimeNG Table ColumnFilter Properties</h3>
<p-table
#dt
[value]="tutorials"
dataKey="title"
[rowHover]="true"
[showCurrentPageReport]="true"
[filterDelay]="0"
[globalFilterFields]="['title', 'category', 'rating']"
>
<ng-template pTemplate="caption">
<div class="table-header">List of Tutorials</div>
</ng-template>
<ng-template pTemplate="header">
<tr>
<th style="width: 3rem">
<p-tableHeaderCheckbox></p-tableHeaderCheckbox>
</th>
<th pSortableColumn="title">
<div class="flex justify-content-between align-items-center">
Title
<p-sortIcon field="title"></p-sortIcon>
<p-columnFilter
type="text"
field="title"
display="menu"
class="ml-auto">
</p-columnFilter>
</div>
</th>
<th pSortableColumn="category">
<div class="flex justify-content-between align-items-center">
Category
<p-sortIcon field="category"></p-sortIcon>
<p-columnFilter
type="text"
field="category"
display="menu"
class="ml-auto">
</p-columnFilter>
</div>
</th>
<th pSortableColumn="rating">
<div class="flex justify-content-between align-items-center">
Rating
<p-sortIcon field="rating"></p-sortIcon>
<p-columnFilter
type="numeric"
field="rating"
display="menu"
class="ml-auto">
</p-columnFilter>
</div>
</th>
</tr>
</ng-template>
<ng-template pTemplate="body" let-tutorial>
<tr class="p-selectable-row">
<td>
<p-tableCheckbox [value]="tutorial"> </p-tableCheckbox>
</td>
<td>
<span class="p-column-title"> Title </span>
{{ tutorial.title }}
</td>
<td>
<span class="p-column-title"> Category </span>
<span class="image-text">
{{ tutorial.category }}
</span>
</td>
<td>
<span class="p-column-title"> Rating </span>
<span class="image-text">
{{ tutorial.rating }}
</span>
</td>
</tr>
</ng-template>
</p-table>
JavaScript
import { Component, OnInit, ViewChild } from '@angular/core';
import { Table } from 'primeng/table';
import { PrimeNGConfig } from 'primeng/api';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
})
export class AppComponent {
tutorials: Tutorial[];
@ViewChild('dt') table: Table;
constructor(private primengConfig: PrimeNGConfig) {}
ngOnInit() {
this.tutorials = [
{
title: 'Queue',
category: 'Data Structure',
rating: 8,
},
{
title: 'Circularly LinkedList',
category: 'Data Structure',
rating: 1,
},
{
title: 'Doubly LinkedList',
category: 'Data Structure',
rating: 3,
},
{
title: 'Singly LinkedList',
category: 'Data Structure',
rating: 5,
},
{
title: 'Doubly Ended Queue',
category: 'Data Structure',
rating: 10,
},
{
title: 'Binary Search Tree',
category: 'Data Structure',
rating: 2,
},
{
title: 'Red Black Tree',
category: 'Data Structure',
rating: 9,
},
{
title: 'Breadth First Search',
category: 'Graph',
rating: 6,
},
{
title: "Floyd's Cycle",
category: 'Algorithm',
rating: 7,
},
{
title: 'Travelling Salesman Problem',
category: 'Algorithm',
rating: 4,
},
{
title: 'Bellman Ford',
category: 'Graph',
rating: 8,
},
{
title: 'KMP Algorithm',
category: 'String',
rating: 10,
},
];
this.primengConfig.ripple = true;
}
}
export interface Tutorial {
title?: string;
category?: string;
rating?: number;
}
JavaScript
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { FormsModule } from '@angular/forms';
import { HttpClientModule } from '@angular/common/http';
import { BrowserAnimationsModule }
from '@angular/platform-browser/animations';
import { AppComponent } from './app.component';
import { TableModule } from 'primeng/table';
import { CalendarModule } from 'primeng/calendar';
import { SliderModule } from 'primeng/slider';
import { DialogModule } from 'primeng/dialog';
import { MultiSelectModule } from 'primeng/multiselect';
import { ContextMenuModule } from 'primeng/contextmenu';
import { ButtonModule } from 'primeng/button';
import { InputTextModule } from 'primeng/inputtext';
import { ProgressBarModule } from 'primeng/progressbar';
import { DropdownModule } from 'primeng/dropdown';
@NgModule({
imports: [
BrowserModule,
BrowserAnimationsModule,
TableModule,
CalendarModule,
SliderModule,
DialogModule,
MultiSelectModule,
ContextMenuModule,
DropdownModule,
ButtonModule,
InputTextModule,
ProgressBarModule,
HttpClientModule,
FormsModule,
],
declarations: [AppComponent],
bootstrap: [AppComponent],
})
export class AppModule {}
Output:
Example 2: In the following example, there will be no apply button, the filters will be applied automatically.
HTML
<h1 style="color:green;text-align:center;">GeeksforGeeks</h1>
<h3>Angular PrimeNG Table ColumnFilter Properties</h3>
<p-table
#dt
[value]="tutorials"
dataKey="title"
[rowHover]="true"
[showCurrentPageReport]="true"
[filterDelay]="0"
[globalFilterFields]="['title', 'category', 'rating']"
>
<ng-template pTemplate="caption">
<div class="table-header">List of Tutorials</div>
</ng-template>
<ng-template pTemplate="header">
<tr>
<th style="width: 3rem">
<p-tableHeaderCheckbox></p-tableHeaderCheckbox>
</th>
<th pSortableColumn="title">
<div class="flex justify-content-between align-items-center">
Title
<p-sortIcon field="title"></p-sortIcon>
<p-columnFilter
type="text"
field="title"
display="menu"
class="ml-auto"
[showClearButton]="false"
[showApplyButton]="false">
</p-columnFilter>
</div>
</th>
<th pSortableColumn="category">
<div class="flex justify-content-between align-items-center">
Category
<p-sortIcon field="category"></p-sortIcon>
<p-columnFilter
type="text"
field="category"
display="menu"
class="ml-auto"
[showClearButton]="false"
[showApplyButton]="false">
</p-columnFilter>
</div>
</th>
<th pSortableColumn="rating">
<div class="flex justify-content-between align-items-center">
Rating
<p-sortIcon field="rating"></p-sortIcon>
<p-columnFilter
type="numeric"
field="rating"
display="menu"
class="ml-auto"
[showClearButton]="false"
[showApplyButton]="false">
</p-columnFilter>
</div>
</th>
</tr>
</ng-template>
<ng-template pTemplate="body" let-tutorial>
<tr class="p-selectable-row">
<td>
<p-tableCheckbox [value]="tutorial"> </p-tableCheckbox>
</td>
<td>
<span class="p-column-title"> Title </span>
{{ tutorial.title }}
</td>
<td>
<span class="p-column-title"> Category </span>
<span class="image-text">
{{ tutorial.category }}
</span>
</td>
<td>
<span class="p-column-title"> Rating </span>
<span class="image-text">
{{ tutorial.rating }}
</span>
</td>
</tr>
</ng-template>
</p-table>
JavaScript
import { Component, OnInit, ViewChild } from '@angular/core';
import { Table } from 'primeng/table';
import { PrimeNGConfig } from 'primeng/api';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
})
export class AppComponent {
tutorials: Tutorial[];
@ViewChild('dt') table: Table;
constructor(private primengConfig: PrimeNGConfig) {}
ngOnInit() {
this.tutorials = [
{
title: 'Queue',
category: 'Data Structure',
rating: 8,
},
{
title: 'Circularly LinkedList',
category: 'Data Structure',
rating: 1,
},
{
title: 'Doubly LinkedList',
category: 'Data Structure',
rating: 3,
},
{
title: 'Singly LinkedList',
category: 'Data Structure',
rating: 5,
},
{
title: 'Doubly Ended Queue',
category: 'Data Structure',
rating: 10,
},
{
title: 'Binary Search Tree',
category: 'Data Structure',
rating: 2,
},
{
title: 'Red Black Tree',
category: 'Data Structure',
rating: 9,
},
{
title: 'Breadth First Search',
category: 'Graph',
rating: 6,
},
{
title: "Floyd's Cycle",
category: 'Algorithm',
rating: 7,
},
{
title: 'Travelling Salesman Problem',
category: 'Algorithm',
rating: 4,
},
{
title: 'Bellman Ford',
category: 'Graph',
rating: 8,
},
{
title: 'KMP Algorithm',
category: 'String',
rating: 10,
},
];
this.primengConfig.ripple = true;
}
}
export interface Tutorial {
title?: string;
category?: string;
rating?: number;
}
JavaScript
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { FormsModule } from '@angular/forms';
import { HttpClientModule } from '@angular/common/http';
import { BrowserAnimationsModule }
from '@angular/platform-browser/animations';
import { AppComponent } from './app.component';
import { TableModule } from 'primeng/table';
import { CalendarModule } from 'primeng/calendar';
import { SliderModule } from 'primeng/slider';
import { DialogModule } from 'primeng/dialog';
import { MultiSelectModule } from 'primeng/multiselect';
import { ContextMenuModule } from 'primeng/contextmenu';
import { ButtonModule } from 'primeng/button';
import { InputTextModule } from 'primeng/inputtext';
import { ProgressBarModule } from 'primeng/progressbar';
import { DropdownModule } from 'primeng/dropdown';
@NgModule({
imports: [
BrowserModule,
BrowserAnimationsModule,
TableModule,
CalendarModule,
SliderModule,
DialogModule,
MultiSelectModule,
ContextMenuModule,
DropdownModule,
ButtonModule,
InputTextModule,
ProgressBarModule,
HttpClientModule,
FormsModule,
],
declarations: [AppComponent],
bootstrap: [AppComponent],
})
export class AppModule {}
Output:
Reference: http://primefaces.org/primeng/table
Similar Reads
Angular PrimeNG Table pFrozenColumn Properties
Angular PrimeNG is an open-source framework with a rich set of native Angular UI components that are used for great styling and this framework is used to make responsive websites with very much ease. This article will show us how to use pFrozenColumn Properties in Angular PrimeNG. The Table componen
5 min read
Angular PrimeNG Table Properties
Angular PrimeNG is an open-source framework with a rich set of native Angular UI components that are used for great styling and this framework is used to make responsive websites with very much ease. It provides a lot of templates, components, theme design, an extensive icon library, and much more.
12 min read
Angular PrimeNG Table Column Resize
Angular PrimeNG is an open-source framework with a rich set of native Angular UI components that are used for great styling and this framework is used to make responsive websites with very much ease. This article will show us how to use TreeTable Column Resize in Angular PrimeNG. Angular PrimeNG Tab
4 min read
Angular PrimeNG TreeTable Filter
Angular PrimeNG is an open-source framework with a rich set of native Angular UI components that are used for great styling and this framework is used to make responsive websites with very much ease. This article will show us how to use TreeTable Filter in Angular PrimeNG. Angular PrimeNG TreeTable
6 min read
Angular PrimeNG Table Column Reordering
Angular PrimeNG is a UI toolkit to make web applications with Angular. It costing of hundreds of pre-built component that makes it easy for developers to create a beautiful and responsive web solution in less time. In this article, we will see Angular PrimeNG Table Column Reordering. The Table Compo
5 min read
Angular PrimeNG Table ColumnFilter Templates
Angular PrimeNG is an open-source framework with a rich set of native Angular UI components that are used for great styling and this framework is used to make responsive websites with very much ease. It provides a lot of templates, components, theme design, an extensive icon library, and much more.
6 min read
Angular PrimeNG TreeTable Properties
Angular PrimeNG is an open-source framework with a rich set of native Angular UI components that are used for great styling and this framework is used to make responsive websites with very much ease. It provides a lot of templates, components, theme design, an extensive icon library, and much more.
10 min read
Angular PrimeNG TreeTable Column Resize
Angular PrimeNG is an open-source framework with a rich set of native Angular UI components that are used for great styling and this framework is used to make responsive websites with very much ease. This article will show us how to use TreeTable Column Resize in Angular PrimeNG. Angular PrimeNG Tre
6 min read
Angular PrimeNG TreeTable Filtering
Angular PrimeNG is an open-source framework with a rich set of native Angular UI components that are used for great styling and this framework is used to make responsive websites with very much ease. This article will show us how to use the TreeTable Filtering in Angular PrimeNG. Angular PrimeNG Tre
6 min read
Angular PrimeNG PickList Properties
Angular PrimeNG is an open-source framework with a rich set of native Angular UI components that are used for great styling and this framework is used to make responsive websites with very much ease. It provides a lot of templates, components, theme design, an extensive icon library, and much more.
8 min read