2012-09-27 77 views
0

我做了一個動態CellTable使用這個問題作爲指導:Create GWT CellTable Dynamically如何製作不可編輯的CellTable?

但是這樣我只能做一個可編輯的CellTable,我不知道爲什麼。

檢查我的代碼:

@UiField 
CellTable<List<String>> tableDynamic; 
@UiField 
SimplePager pagerDynamic; 

private SingleSelectionModel<List<String>> 
selectionModelDynamic = new SingleSelectionModel<List<String>>(); 
private List<String> columns = new ArrayList<String>(); 
private List<List<String>> data = new ArrayList<List<String>>(); 
private ListDataProvider<List<String>> providerDynamic 
= new ListDataProvider<List<String>>(); 

我廠

@UiFactory 
public CellTable<List<String>> getTabelaDynamic() { 
    CellTable<List<String>> table 
      = new com.google.gwt.user.cellview.client.CellTable<List<String>>(); 

    //List<String> columnsArray = colunas; 
    List<String> columnsArray = columns(); 
    for (int column = 0; column < columnsArray.size(); column++) { 
     table.addColumn(new IndexedColumn(column), new 
       TextHeader(columnsArray.get(column))); 
    } 
    table.setKeyboardSelectionPolicy 
(HasKeyboardSelectionPolicy.KeyboardSelectionPolicy.ENABLED); 
    table.setSelectionModel(selectionModelDynamic); 
    providerDynamic.addDataDisplay(table); 
    providerDynamic.setList(new ArrayList<List<String>>()); 
    return table; 
} 

方法得到的列:

//Just a static test 
public List<String> columns(){ 
    colunas.add("Tables"); 
    return colunas; 
} 

方法只有一個列設置數據。

@Override 
public void setSingleData(List<String> bankData) { 
    for (String s : bankData) { 
     List<String> help = new ArrayList<String>(); 
     help.add(s); 
     dados.add(help); 
    } 
    providerDynamic.setList(data); 
} 

我做一個RPC調用(onBind方法)來獲取列表,並填充上setsingledata方法。

爲什麼我收到一個可編輯的單元格?

回答

3

您的表是可編輯的,因爲IndexedColumn在另一個問題中使用EditTextCell。使用TextCell,你的表格將不可編輯。

相關問題