2012-08-31 2 views
0

모델을 설정 한 후 그리드의 아래쪽으로 스크롤하려고합니다.렌더링 후 그리드 스크롤 ZK

myGrid.setModel(new ListModelList<Object>(myList)); 

2)이 행 렌더러

3

myGrid.setRowRenderer(new RowRenderer<Object>() { 
     @Override 
     public synchronized void render(Row row,final Object data, int index) throws Exception {      
      row.setStyle("commonCellPadding"); 
          . 
          . 
          . 

      row.appendChild(htmlMessage); 
     }   
    }); 
를 오버라이드 (override)) 모델을 설정하는 데 사용되는 목록이 그리드 (너무 큰 마지막 경우 :

1) 나는 모델을 설정 .zul은 고정 된 높이를 가짐) 나는 마지막 결과를 보여주고 싶다. 렌더링 후에 자동으로 아래로 스크롤해야합니다. 내가 어떻게 할 수 있니?

것들 내가 시도했다

가)이,이 때문에 gridEle.scrollHeight 속성이 ZUL에 살고 있고 그리드의 고정 높이를 반환하는 사실에 작동하지 않는 렌더링 후 자바 스크립트 함수를 호출 (또는 0이 아닌 경우) 모델이 설정된 후 그리드의 높이가 아닙니다.

+0

아래 제안을 시도 했습니까? – kachhalimbu

+0

나는 노력했다. 그러나 나는 일하지 않았다. 아마도 Render-On-Demand 일 것이다. 나는 시간을 좀 벌어서 연구를 계속할 것이다. – Camauu

답변

0

myList를 내림차순으로 정렬하여 스크롤 막대를 제어하는 ​​대신 마지막 행을 첫 번째 행으로 정렬하지 않는 이유는 무엇입니까?
제 의견으로는 더 쉽고 사용자 경험을 일치시킬 수 있습니다.

+0

이 코드는 웹 채트를위한 코드입니다. 일반적으로 마지막으로 수신되거나 전송 된 메시지는 창 하단에 표시됩니다. 채팅에 기록이있는 경우 (이미 메시지가 있음) 대화를 마지막으로 표시하려면 창을 맨 아래로 스크롤합니다. – Camauu

0

모델 및 행 렌더러를 설정 한 후에 Clients.scrollIntoView(rows.getLastChild());을 호출하기 만하면됩니다 (rows은 행 구성 요소 ID이며 컨트롤러에 자동으로 연결되어 있음). zkfiddle heresource

UPDATE의 라이브 데모를 참조하십시오 스크롤 할 행이 초기 페이지로드에 자연적으로로드되지 않았을하는 경우 때문에 Render-On-Demand 기능을 사용하는 경우 Clients.scrollIntoView(Component)이 작동하지 않을 것입니다.