Обновить данные и состояние пагинатора

Я использую PrimeNG Turbotable <p-table #dt.

Согласно это dt.reset() сбросит состояние сортировки, фильтрации и разбиения на страницы. Я пытаюсь найти способ сбросить состояние paginator и перезагрузить данные таблицы. (без сброса состояния сортировки)

Это должно произойти на (click) этой кнопки введите здесь описание изображения

<p-button icon="fa fa-refresh" (click)="refresh()"></p-button>

Как я могу этого добиться?


person E.Meir    schedule 31.07.2018    source источник


Ответы (5)


В .html файле -

<p-table #dt [columns]="cols" [value]="result" [paginator]="true" [rows]="10" [(first)]="first">

Не забывайте скобки в [(first)]

В файле .ts добавьте первый атрибут:

first = 0

везде, где вы хотите сбросить, вызовите указанную ниже функцию обновления

refresh() {
    this.first = 0;
}
person harsh.tibrewal    schedule 01.05.2020

Поскольку ваш HTML выглядит как

<p-table [columns]="cols" [value]="cars" [paginator]="true" [rows]="10" [first]="first">

где first — это индекс первой отображаемой строки, чтобы сбросить только нумерацию страниц, вы должны установить его значение в 0 :

refresh() {
    this.first = 0;
}

Затем, если вы хотите также перезагрузить свои данные, вам просто нужно снова вызвать службу (при необходимости) в методе refresh.

person Antikhippe    schedule 31.07.2018
comment
когда я устанавливаю this.first в 0, ничего не происходит, когда я устанавливаю его в 1, тогда только пагинатор (в пользовательском интерфейсе) меняется на страницу 1, но содержимое таблицы не обновляется данными страницы 1. - person E.Meir; 01.08.2018
comment
на странице Html я вызываю функцию обновления(): <p-button icon="fa fa-refresh" (click)="refresh()"></p-button>, в файле ts: refresh() { this.first = 0; } когда я нажимаю кнопку - ничего не происходит - person E.Meir; 01.08.2018
comment
Пожалуйста, поделитесь всем своим кодом TS и HTML для этого компонента или создайте StackBlitz. - person Antikhippe; 01.08.2018

Попробуй это:

refresh() {
    dt.first = 0;
}
person Ingmar Aguiar    schedule 01.12.2018

В вашем шаблоне получите ссылку на вашу p-таблицу, используя @ViewChild

<p-table #turboTable [columns]="cols" [value]="cars" [paginator]="true" [rows]="10" >
<p-button icon="fa fa-refresh" (click)="refresh()"></p-button>

В файле компонента

    @ViewChild('turboTable', { static: false }) turboTable: any;

    refresh(){    
       this.turboTable._first = 0;
      //call your get service without filter
    }
person Anup Bangale    schedule 28.11.2019

я нашел решение, это довольно грязно, но оно делает свою работу. Используйте @ViewChild для доступа к вашему HTML-дому: @ViewChild('dt', { static: false }) dt: any;

Я видел, что есть свойство под названием: sortOrder. Он имеет два значения 1 и -1. Я заставил перезагрузить сортировку, добавив:

this.dt.sortOrder = - this.dt.sortOrder; this.dt.sortOrder = - this.dt.sortOrder;

person kmacew    schedule 02.12.2019