2016-02-26 83 views
1

我想對電網GXT添加新的列,我做到了這一點,但是當我試圖通過此列的所有數據被刪除,排序電網出現:如何動態添加列到網格GXT?

拋出:IllegalArgumentException:屬性不能爲null或空

在此之後我試圖數據索引XXX設置爲列的配置,在這種情況下,我得到了另一個異常:

可以在網格存儲庫屬性未找到這個名字

這是我動態地添加新列代碼:

@Override 
    public List<ColumnConfig> getTableColumns() { 
     List<ColumnConfig> tableColumns = super.getTableColumns(); 
     ColumnConfig downloadLink = new ColumnConfig(); 
     downloadLink.setRenderer(new GridCellRenderer() { 
      @Override 
      public Object render(ModelData modelData, String s, ColumnData columnData, int i, int i1, ListStore listStore, Grid grid) { 
       if (modelData.get("uuid")!=null) { 
        Anchor anchor = new Anchor(); 
        anchor.setHref(GWT.getModuleBaseURL() + "download?uuid=" + modelData.get("uuid")); 
        anchor.setName("name"); 
        anchor.setText("Download"); 
        return anchor; 
       }else{ 
        return "N/A"; 
       } 
      } 
     }); 
     downloadLink.setWidth(100); 
     downloadLink.setHeader("Download"); 
//  downloadLink.setDataIndex("downloadLink"); 
     tableColumns.add(downloadLink); 
     return tableColumns; 
    } 

我怎樣才能讓新列可排序?

回答

1

grid.reconfigure可用於更改列。

final ColumnModel<Stock> cm2 = new ColumnModel<Stock>(columns); 
grid.reconfigure(store, cm2);