应用过滤器后,PrimeNG加载DataTable

时间:2018-02-20 19:33:14

标签: angular primeng primeng-datatable

我从API获取数据,并将其呈现在 p-table

之后,我以编程方式触发表过滤(默认过滤器)。

我遇到的问题是表格是在没有过滤器的情况下加载和渲染的,并且在几毫秒之后会应用过滤器,并且表格会重新渲染。

有没有办法让事件触发Prime Table的加载?或者以某种方式延迟它。

模板:

select      Demog.ID, Demog.[Long Term Date]
from        Demog
where       (@LTPD IS NULL)
or          (@LTPD = -1 AND Demog.[Long Term Date]<=GetDate())
or          (@LTPD = 1  AND Demog.[Long Term Date]>=GetDate())

类别:

<p-table #tt class="table"[value]="myList">
     ....
     <tr>
       <th>
        <p-dropdown appendTo="body" *ngSwitchCase="'state'" [options]="states"
        (onChange)="tt.filter($event.value, 'state', 'equals')"></p-dropdown>
       </th>
     </tr>
     ....
</p-table>

1 个答案:

答案 0 :(得分:1)

此过滤与您的标记相似,只有当您从api调用中获取数据时才会显示标记。

所以最好的决定和正确的方法是在then回调中对你的数组进行排序,例如

this.myList = res.sort(yourCustomSortFunction);

据我了解你需要立即呈现,所以为什么不在模板渲染之前提前对它进行排序。