@UiHandler("addDynamicTextboxbutton")
void addMoreTextbox(ClickEvent event) {
textboxplaceholder.add(new TextBox(),"textboxplace");
}
单击addDynamicTextboxbutton按钮时,将执行此方法并创建新文本框。如何使用另一个按钮,以便在单击时,将获取每个“textbox()”的所有值?还是有必要把名称“新文本框(”名称“)”,以便我可以得到他们所有的价值观?这样做的最佳做法是什么?
答案 0 :(得分:2)
如果textboxplaceholder
是ComplexPanel
的延伸,例如FlowPanel
,您可以简单地遍历FlowPanel
的孩子:
for (Widget w: textboxplaceholder) {
if (w instanceof TextBox) {
// do something value: ((TextBox)w).getValue();
}
}
答案 1 :(得分:1)
您可以使用集合存储新添加的TextBox
,稍后您可以从中获取所有值。像这样:
public class Test extends Composite {
private static TestUiBinder uiBinder = GWT.create(TestUiBinder.class);
interface TestUiBinder extends UiBinder<Widget, Test> {}
@UiField
FlowPanel textboxplaceholder;
@UiField
Button addDynamicTextboxbutton;
private LinkedList<TextBox> boxes;
public Test() {
initWidget(uiBinder.createAndBindUi(this));
boxes = new LinkedList<TextBox>();
}
@UiHandler("addDynamicTextboxbutton")
void addMoreTextbox(ClickEvent event) {
TextBox box = new TextBox();
textboxplaceholder.add(box);
boxes.add(box);
}
}
迭代boxes
中存储的框以获取所有值。