2011-12-01 2 views
1

키보드를 사용하여 DataGrid 페이지를 아래로 스크롤하면 보이는 범위에서 마지막으로 표시되는 항목이 부분적으로 가려져 있으면 선택시 완전히 표시되지 않습니다. 마우스로 행을 선택할 때도 마찬가지입니다. 행은 스크린 샷에서 볼 수있는 것처럼 열 값을 완전히 표시 할 정도로 표시되지만 이미지는 부분적으로 가려져 있습니다. 꼬리말이 보이지 않아도 똑같은 일이 발생하므로 행을 가리는 바닥 글이 여기에서 문제가되지는 않습니다. 또한 첫 번째 표시 항목을 선택하면 동작이 동일합니다. 숫자 값만 표시됩니다.GWT 2.4 DataGrid에서 선택된 행이 부분적으로 왜곡되어 있습니까?

DataGrid example

이것은 사소한 문제의 종류하지만 내 경우에 데이터 그리드는 대부분 키보드를 사용하여 탐색하기 때문에, 정말 유용성에 매우 큰 영향을 미친다. 그래서 - 선택했을 때 전체 행 가시성을 확보하기 위해 할 수있는 아이디어가 있습니까?

미리 감사드립니다.

+0

글쎄, 어떤 열을 선택 했느냐에 따라 문제가있는 것 같습니다. 눈금을 맞추기 위해 이미지 셀을 클릭하면 스크롤이 예상대로 작동합니다. 초점을 맞춘 셀에 관계없이 이미지 셀에 포커스를 적용 할 수 있는지 궁금합니다. 아래로 스크롤하여 마지막 항목을 선택하면 선택한 항목이 가운데에 있도록 위젯이 아래로 스크롤됩니다. 이런 종류의 자동 스크롤 기능을 사용하지 않으려 고합니다. – toman

답변

1

다음과 같이 DataGrid를 확장하고 setKeyboardSelected (int, boolean, boolean)를 재정의하면 트릭을 수행하는 것처럼 보이지만 물론 해킹이며 최적의 솔루션이 아닙니다.

@Override 
protected void setKeyboardSelected(int index, boolean selected, boolean stealFocus) { 
    if (KeyboardSelectionPolicy.DISABLED == getKeyboardSelectionPolicy() || !isRowWithinBounds(index) || getColumnCount() == 0) { 
     return; 
    } 
    super.setKeyboardSelected(index, selected, stealFocus); 
    TableRowElement tr = getRowElement(index); 
    tr.scrollIntoView(); 
} 
관련 문제