2017-12-14 13 views
0

안녕하세요 Primeng dataTable을 사용하여 백엔드에서 데이터베이스 쿼리 결과를 렌더링하고 있는데, 열과 행이 표시되면 이벤트가 발생합니까?완벽한로드가 가능한 데이터 테이블?

더 긴 질문입니다. 요청이 돌아 오면 백엔드를 쿼리하는 동안 화면을 차단하려고했으나 요청이 돌아 오면 화면의 차단을 해제했지만 화면이 잠겨지지 않아 (요청이 반환 됨) 결과 데이터가 표시되는 것 같습니다. 화면 (행과 열이 채워짐), 우리는 100 ~ 500ms 지연과 같은 것에 대해 이야기하고 있습니다. 그래서 요청이 돌아 오지 않을 때 화면을 차단 해제하고 싶지만 데이터가 표시 될 때까지 기다려야합니다.

유일한 옵션이 아닌 한 Primeng datatable을 변경하지 않는 것이 좋습니다. 다른 제안에 열려 있습니다.

답변

1

BlockUI를 사용해 볼 수 있습니다. 부울 매개 변수를 기반으로 데이터 테이블을 차단할 수 있습니다. 샘플 :

<p-blockUI [target]="dt" [blocked]="blockedPanel"> 
    <i class="fa fa-refresh fa-spin fa-3x" style="position:absolute;top:25%;left:50%"></i> 
</p-blockUI> 

그리고 당신의 데이터 테이블 : 당신의 TS에서

<p-dataTable #dt [value]="myList"></p-dataTable> 

은 해제/당신이 설정할 수 있습니다 여기에 "blockedPanel"라는 부울 플래그를 파일. Reference

데이터 집합이 작고 지연이 눈에 띄지 않는 경우에 사용할 수 있습니다.

또 다른 대안은

onValueChange() 데이터 세트의 변화가 발생하게

방법을 시도하는 것입니다.

+0

감사합니다. 이것은 내가하고있는 일입니다. 문제의 핵심은 "언제"차단을 해제 할 것인가입니다. 당신의 말처럼, 부울 플래그를 해제 할시기. 요청이 반환되지만 너무 빨리 부울 플래그를 설정 해제합니다. 데이터가로드되면 dataTable에 이벤트가 발생하는지 궁금합니다. – user1589188

+0

onValueChange() 이벤트를 사용해 보셨습니까? – Amit

+0

오, 좋다. onValueChange() 이벤트가 생겼다. (나의 새로운 버전은이 새로운 이벤트를 추가했을 때보 다 조금 오래되었다.) 테스트를 거쳤다. 위의 답변 (위의 설명 대신)에이 내용을 추가 할 수 있다면 답변으로 선택하겠습니다. 감사합니다. – user1589188