2011-03-25 4 views
4

내 페이지 중 하나에 dojo.datagrid가 있습니다. Datagrid와 저장소 (URL 호출)는 선언적 메서드로 만들어집니다. 동적/프로그래밍 방식이 아닙니다.dojo.datagrid로드를 확인하는 방법이 완료 되었습니까?

내 DataGrid 바로 아래 div (데이터 그리드의 데이터가 거의 필요하지 않음)를 표시하는 javascript 메소드를 실행해야합니다. 내 DataGrid로드가 완료된 후에 만 ​​div를 표시해야하며 그 전에는 표시하지 말아야합니다.

DataGrid 용으로 작성된 onload와 같은 이벤트를 찾고 있습니다. dojo.datagrid에 어떤 이벤트가 있습니까? 이벤트의 dojo 목록에 표시되지 않습니다 .Dagagrid 설명서.

dojo DataGrid onload가 완료되었는지 확인하는 방법이 있습니까?

이것을 처리하기 위해 dojo.connect를 사용할 수있는 방법이 있습니까?

우리는이 작업을 수행 할 수있는 방법이 있으면 알려 주시기 바랍니다 ...

감사합니다, 라지.

답변

5

데이터 그 자체는 실제로 모든 데이터를로드하지 않으며 저장소에있는 데이터의 하위 선택 만 표시합니다.

onload 이벤트를 catch하려면 저장소 이벤트를 연결해야합니다. 저장소는 많은 위치에서 데이터를로드 할 수 있으므로 onComplete 함수를 그리드 저장소의 fetch 메서드에 전달해야합니다.

grid.store.fetch({onComplete : function (items) { // Do something }}); 
또한, 프로그래밍 방식 가게를 만들고, onComplete를 청취자에게 가져 호출하고 당신이 상점의 onComplete를 청취자의 항목의 수정을 완료 한 후, myGrid.setStore (의 mystore)를 호출 할 수

;

+0

1.8에서 나에게 적합하지 않습니다. 가져 오기는 그리드 시작 후 완료되어야합니까? "query : {toUserId : self._userId}"와 같은 그리드를 만들 때 쿼리를 전달하므로 가져 오기를 호출 할 필요가 없습니다. 나는 아래의 aspect 솔루션을 사용한다. – unludo

+0

이 향상된 그리드에서 작동합니다 .... 도장 1.10 버전을 사용하고 있습니다. – shv22

0

부하가 (setSelectedIndex는 true를 돌려줍니다) 완료 될 때까지 데이터가로드되는 경우, 그래서 모든 초를 실행 확인하기 위해 타이머를 설정할 수 있습니다

private var load_check:uint; 

    /* start the interval timer when the app is initialized */ 
protected function init():void 
{ 
    load_check = setInterval(getTime, 500); // 1/2 second 
} 
private function getTime():void 
{ 
    if (!datagrid.setSelectedIndex (0)) 
     return; 
    clearInterval(load_check); // data loaded! 
} 
3

DataGrid 이벤트 _onFetchComplete이있는 당신을 dojo.connect으로 연결할 수 있습니다. 그것은 _으로 시작합니다. 따라서 개인/보호 된 이벤트 유형이어야하고 그 동작은 최신 Dojo 버전에서 변경 될 수 있습니다. 나는 Dojo 1.6에서 잘 작동한다는 것을 알고있다.

3

Alex는 이미 지적했듯이 (불행히도) 개인 _onFetchComplete 이벤트에 반응 할 수 있습니다. dojo 1.7에서는 다음과 같이 dojo.aspect를 사용하여이 작업을 수행 할 수 있습니다.

관련 문제