Я создал таблицу в ваадине, и для каждой строки я поставил кнопку, которую я хочу нажимать на каждую кнопку, данные этой строки должны быть показаны, но мой проблема заключается в том, как я динамически устанавливаю идентификатор (button.setData (), а также вторую проблему для создания кнопки. Я делаю метод, который я вызываю каждый раз для создания кнопки, но как я использую эту Способ изготовления clicklistiner для для того чтобы определить, какая кнопка мышиVaadin выборка данных при нажатии отдельной кнопки в таблице
0
A
ответ
0
в моем случае, я использую JPAContainer, так что я могу получить идентификатор таким способом: `
filterTable.addItemClickListener(new ItemClickEvent.ItemClickListener() {
@Override
public void itemClick(ItemClickEvent event) {
Product selectedProduct = (JPAContainerItem<Product>)event.getItem()).getEntity();
ProductForm productForm = new ProductForm(....);
....
}
}
);
` Итак,« event.getItem() »делает магию.
0
Вы можете добавить созданный столбец, в котором вы создаете свою кнопку, и что-то делать с предоставленными объектами.
.: например
table.addGeneratedColumn("BUTTON_COLUMN", new ColumnGenerator() {
@Override
public Object generateCell(final Table source, final Object itemId, final Object columnId) {
Button button = new Button();
button.addClickListener(new ClickListener() {
@Override
public void buttonClick(ClickEvent event) {
// do something with source; itemId; columnId like:
// source.getContainerDataSource().removeItem(itemId);
}
});
return button;
}
});