瓦丁设置选定的一排表

时间:2016-07-10 18:52:36

标签: java select vaadin vaadin7

Vaadin:在更新表格内容后,我需要设置所选行。 我有一个包含不同客户的Comboboxbutton。 另外我有两个表,第一个显示主要类别,而secound显示子类别。 最初,没有选择客户,显示主要类别,不显示子类别。

当我点击某个类别(比如说产品!)时,子类别表会显示并显示子类别。 当我现在将客户从空更改为特定客户时,两个表都被过滤,但是:产品选择丢失。我需要将选择设置为之前选择的选项。

我从antoher类获取表内容作为sql-container对象。

mainCatTable = new Table();
...
mainCatTable.setContainerDataSource(source.getMainCats());

//My Checkboxbutton
Combobox custBox = new ComboBox();

//Get the customers from the Database
custBox.setContainerDataSource(source.getCustomers());

custBox.setItemCaptionPropertyId("Customers");
custBox.addValueChangeListener(new ValueChangeListener() {
     public void valueChange(ValueChangeEvent valueEvent) {  

//Here I need to store the old selection, before i update the mainCat table to a specific customer  
          mainCatTable.setContainerDataSource(source.getMainCats(currentCustomer));

//Here I need something to set the selected row to the previous value
          subCatTable.setContainerDataSource(source.getSubCats());
          }
});

getMainCats方法返回的sql-container创建如下:

FreeformQuery subcatExtractionQuery = new FreeformQuery("select customerName from customers", connectionPool);
return new SQLContainer(subcatExtractionQuery);

问题是,尝试了不同的方法,但它没有用。 这是我的尝试: https://vaadin.com/forum/#!/thread/1819417/1819416 但他们使用索引容器,但我不是。

任何人都可以解释如何在没有索引容器的情况下这样做吗?

1 个答案:

答案 0 :(得分:3)

如何使用表的值来获取/设置“选中”行?

Object value = mainCatTable.getValue();    
mainCatTable.setContainerDataSource(source.getMainCats(currentCustomer));
mainCatTable.setValue(value);