2013-08-28 2 views
1

DataGrid에 대한 두 번 클릭 이벤트가 추가되었지만 올바르게 작동하지 않습니다. 코드가 한 번의 클릭 만 처리하지만 이 아니고 두 번 클릭을 처리합니다.DataGrid의 두 번 클릭 이벤트

도와주세요.

private DataGrid<Contract> table = new DataGrid<Contract>(); 
table.addCellPreviewHandler(new Handler<Contract>() { 
    @Override 
    public void onCellPreview(final CellPreviewEvent<Contract> event) { 
    if (BrowserEvents.DBLCLICK.equals(event.getNativeEvent().getType())) { 
     //it doesn't handle 
     Window.alert("Tro-lo-lo"); 
    } 
    if (BrowserEvents.CLICK.equals(event.getNativeEvent().getType())) { 
     //it handles 
     Window.alert("Tru-la-la");   
    } 
    } 
}); 
+1

시도를 사용하여 DoubleClickHandler를 추가 할 수 있습니다. 로그. 경고는 두 번째 클릭을 차단할 수 있습니다. –

+0

로깅에 의해 WIndow.alert를 대체했으며 두 번 클릭하면 2 번 클릭으로 처리됩니다. – zigfridus

+0

제발 나에게 뭔가 제안 해주세요. – zigfridus

답변

1

DataGrid에는 CellTable과 공통점이 많이 있습니다. 그래서 this question의 솔루션도 당신을 위해 일해야합니다

CellPreviewHandler 카운트 시간을 사용
  • 둘 사이 클릭
  • 또는 콘솔`와 경고를 대체 할 addDomHandler 방법을
1
dataGrid.addDomHandler(new DoubleClickHandler() { 
    @SuppressWarnings("unchecked") 
    @Override 
    public void onDoubleClick(DoubleClickEvent event) { 
     DataGrid<YourDataProviderType> grid = (DataGrid<YourDataProviderType>) event.getSource(); 
     int row = grid.getKeyboardSelectedRow(); 
     YourDataProviderType item = grid.getVisibleItem(row); 
     Window.alert("Do Something Here"); 
    }  
}, DoubleClickEvent.getType()); 
관련 문제