All of the examples I have found for the PrimeNG p-table
show the following example for filtering a table.
<input pInputText type="text" (input)="dt.filterGlobal($event.target.value, 'contains')" placeholder="Filter" />
When I use this I get a compile error.
error TS2339: Property 'value' does not exist on type 'EventTarget'.
Note: I do have strict mode turned on.
Your HTML input should be like this
<input pInputText type="text" (input)="applyFilterGlobal($event, 'contains')" placeholder="Filter" />
and in your TS do this
import { Table } from 'primeng/table'
...
applyFilterGlobal($event: any, stringVal: any) {
this.dt!.filterGlobal(($event.target as HTMLInputElement).value, stringVal);
}
if you get error for dt add below line
@ViewChild('dt') dt: Table | undefined;
try to parse the target to an HTMLInputElement first:
<input pInputText type="text" (input)="applyFilterGlobal($event, 'contains')" placeholder="Filter" />
and in your component:
applyFilterGlobal($event, stringVal) {
this.dt.filterGlobal(($event.target as HTMLInputElement).value, stringVal);
}
event.target is an HTMLElement, because you are in strict mode, and HTMLElement doesnt have the value property, the compile engine throws the error, changing the target to HTMLInputElement solves it
<input pInputText #textInput type="text(input)="tt.filterGlobal(textInput.value, 'contains')" placeholder="Filter" />
Adding #textInput
to the tag worked for me.
getEventValue($event:any) :string {
return $event.target.value;
}
<input pInputText type="text" (input)="dt1.filterGlobal(getEventValue($event), 'contains')" placeholder="Search keyword" />
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With