2015-04-17 64 views
1

我試圖用GWT顯示數據:數據網格,但它不顯示。 我不知道我錯過了什麼。GWT DataGrid:無法顯示數據

此外,我感到惱火的橫幅「看起來你的文章主要是代碼,請添加一些更多的細節」。請幫忙。 enter image description here

public class DataGridDemo extends Composite { 

interface MyUiBinder extends UiBinder<Widget, DataGridDemo> {} 
private static MyUiBinder uiBinder = GWT.create(MyUiBinder.class); 
protected static UserServiceAsync userService = GWT.create(UserService.class); 

    @UiField 
    DataGrid<UserDTO> dataGrid; 

    private List<UserDTO> userList; 

    @UiField 
    Pagination dataGridPagination; 

    private SimplePager dataGridPager = new SimplePager(); 
    private ListDataProvider<UserDTO> dataGridProvider = new ListDataProvider<UserDTO>(); 


    public DataGridDemo(){ 


    initWidget(uiBinder.createAndBindUi(this));  
    loadUsers(); 


    } 


    private void loadUsers() { 
     AsyncCallback<List<UserDTO>> callback ; 
     callback = new AsyncCallback<List<UserDTO>>() { 
      public void onFailure(Throwable caught) {} 
      public void onSuccess(List<UserDTO> users) { 
       if(users!=null && users.size()>0){ 

         userList=users; 

         initTable(dataGrid,dataGridPager, dataGridPagination, dataGridProvider); 
         initMockData(dataGridPagination, dataGridPager, dataGridProvider); 




       } 
      } 
     }; 
     userService.getAllUsers(callback); 
    } 







    private void initMockData(final Pagination pagination, final SimplePager simplePager, final ListDataProvider<UserDTO> dataProvider) { 
     for (UserDTO ud : userList) { 
               System.out.println(ud.getFullName()); 
     dataProvider.getList().add(ud); 
     } 

     dataProvider.flush(); 
     pagination.rebuild(simplePager); 
     } 


    private void initTable(final AbstractCellTable<UserDTO> grid, final SimplePager pager, final Pagination pagination, final ListDataProvider<UserDTO> dataProvider) { 
     final TextColumn<UserDTO> col1 = new TextColumn<UserDTO>() { 

     public String getValue(final UserDTO object) { 
     return String.valueOf(object.getUsername()); 
     } 
     }; 
     grid.addColumn(col1, "Username"); 
     final TextColumn<UserDTO> col2 = new TextColumn<UserDTO>() { 

     public String getValue(final UserDTO object) { 
     return String.valueOf(object.getFullName()); 
     } 
     }; 
     grid.addColumn(col2, "Full Name"); 
     final TextColumn<UserDTO> col3 = new TextColumn<UserDTO>() { 

     public String getValue(final UserDTO object) { 
     return String.valueOf(object.getFundName()); 
     } 
     }; 
     grid.addColumn(col3, "Fund Name"); 


     grid.addRangeChangeHandler(new RangeChangeEvent.Handler() { 

      public void onRangeChange(final RangeChangeEvent event) { 
      pagination.rebuild(pager); 
      } 
      }); 



     pager.setDisplay(grid); 
     pagination.clear(); 
     dataProvider.addDataDisplay(grid); 
     } 
+1

只需設置此數據網格的高度和寬度。 –

+0

謝謝!數據可用但不可見。 – Forkmohit

回答