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 但他们使用索引容器,但我不是。
任何人都可以解释如何在没有索引容器的情况下这样做吗?
答案 0 :(得分:3)
如何使用表的值来获取/设置“选中”行?
Object value = mainCatTable.getValue();
mainCatTable.setContainerDataSource(source.getMainCats(currentCustomer));
mainCatTable.setValue(value);