如果将:lazy =“ true”添加到,如下所示:
<DataTable :value="cars" :lazy="true" :filters="filters" :paginator="true" :rows="10"
:totalRecords="totalRecords" sortMode="multiple" :loading="loading" @page="onPage($event)">
列过滤器和排序不起作用
示例代码:https://www.primefaces.org/primevue/#/datatable/filter
如何使用:lazy进行过滤和排序工作?
欢乐
答案 0 :(得分:0)
需要为每一列有数据配置一个规则,例如一个studens表( id , name ),并在:globalFilterFields中添加关联列的json字段属性名。
<Datatable :filters="filters" :globalFilterFields="[ 'id', 'name' ]">
<Column field="id" header="ID"/>
<Column field="name" header="Name"/>
</Datatable>
...
const filters = ref({
global: { value: null, matchMode: FilterMatchMode.CONTAINS},
id: { value: null, matchMode: FilterMatchMode.EQUALS},
name: { value: null, matchMode: FilterMatchMode.CONTAINS},
});
通过这种方式,您告诉 DataTable 使用定义的规则过滤列 Id 和 Name,只需记住使用正确的 macchMode 过滤数字、日期或字符串,FilterMatchMode.CONTAINS 与字符串一起使用。