2014-10-01 5 views
0

CellTable에서 DataGrid으로 데이터 위젯을 업데이트하려고하는데 기본적으로 온라인으로 변경된 내용이 @UiField CellTable<T>에서 @UiField DataGrid<T>으로 변경되었지만 그게 아닙니다.GWT DataGrid가 표시되지 않습니다.

private void init() { 
     sortHandler = new ListHandler<GWTUser>(getUsers()); 

     dataGrid.setWidth("100%"); 
     dataGrid.setHeight("100%"); 
     dataGrid.setAutoHeaderRefreshDisabled(true); 
     dataGrid.setEmptyTableWidget(emptyDb); 
     dataGrid.addColumnSortHandler(sortHandler); 
     dataGrid.setVisibleRangeAndClearData(dataGrid.getVisibleRange(), true); 

     dataGrid.setRowCount(1, true); 
     dataGrid.clearTableWidth(); 
     dataGrid.redraw(); 

     // Setup Cell Table. 
     initCellTable(); 

     // Connect the table to the data provider. 
     dataProvider.addDataDisplay(dataGrid); 

    } 

    private void initCellTable() { 

     // userId Column 
     TextColumn<GWTUser> userIdColumn = new TextColumn<GWTUser>() { 

      @Override 
      public String getValue(GWTUser object) { 
       return object.getUserId(); 
      } 

     }; 
     dataGrid.addColumn(userIdColumn, Lang.LABEL_USER_USERID); 

     dataGrid.addColumnSortHandler(sortHandler); 
     dataGrid.getColumnSortList().push(userIdColumn); 
     dataGrid.getColumnSortList().push(userIdColumn); 

    } 

    @Override 
    public void setUserList(List<GWTUser> users) { 

      setUsers(users); 

      dataGrid.setRowCount(getUsers().size(), true); 
      dataGrid.setRowData(0, getUsers()); 
      dataGrid.setPageSize(getUsers().size()); 
      dataGrid.setVisibleRange(new Range(0,dataGrid.getRowCount())); 
      dataGrid.redraw(); 

      sortHandler.setList(getUsers()); 


    } 

uiBinder :

<g:VerticalPanel>        
     <g:ScrollPanel ui:field="listScrollPanel"> 
      <c:DataGrid styleName= ui:field='dataGrid' width="100%" height="98%"/> 
     </g:ScrollPanel> 

     <g:HorizontalPanel> 
      <g:Button ui:field="createButton">New</g:Button> 
      <g:Button ui:field="refreshButton">Refresh</g:Button> 
      <g:Button ui:field="removeSelectedButton">Delete Selection</g:Button> 
     </g:HorizontalPanel> 

    </g:VerticalPanel> 
DataGrid가 크롬 개발 도구와 함께해야 할 지역을 변경

이 테이블에 데이터가 아니라 표시입니다 .

기본 정보 :이 생성자에 의해 호출되며 setUserList이 휴식 서비스의 데이터를 가져올 때 내 activitiy에서 호출됩니다. 어떤 도움을 주셔서 감사합니다.

+1

:

여기에 관련 질문입니다. [관련] (http://stackoverflow.com/questions/7874168/gwt-datagrid-automatic-height). – Baz

+0

잘 작동하지만 이제는 다시 동적으로 만들기 위해 모든 것을 다시 설계해야합니다 .... – vicR

+0

위대한, 답변을 추가했습니다. – Baz

답변

1

DataGrid에는 명시 적으로 설정된 높이가 필요합니다. 즉, 비율 (예 : 100%)을 사용할 수 없으며 500px과 같은 것을 사용해야합니다. 당신은`500px` 같은 명시적인 값으로 높이를 설정해야합니다

GWT DataGrid automatic height

+0

나는'ResizeLayoutPanel' 주위에 모든 것을 가지고 있고'void onListContentResize (ResizeEvent event) {dataGrid.setHeight (Integer.toString (event.getHeight()))에 의해 크기를 조정하려고합니다. listScrollPanel.setPixelSize (event.getWidth(), event.getHeight() - 80); } 이제는 CellTable을 사용하여이 작업을 수행 할 수 있습니다. – vicR

+1

@vicR'dataGrid.setHeight (Integer.toString (event.getHeight()) + "px"); ' – Baz

+0

hmmm .. 다시 디버깅 할 필요가 있는데, 데이터 그리드가 높이를 유지하고있는 것 같습니다 ... – vicR