2016-02-26 2 views
1

Я хочу, чтобы добавить новый столбец в сетке GXT, и я сделал это, но когда я пытаюсь отсортировать сетку по этой колонке все данные стираются и появляется:Как добавить динамический столбец в сетку GXT?

IllegalArgumentException: свойство не может быть нулевым или пустым

После этого я попытался установить индекс ххх данных в колонке конфигурации и в этом случае я получил еще одно исключение:

не можете найти в магазине сетки собственности с этим именем

Это мой код для динамического добавления нового столбца:

@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); 
Смежные вопросы