1
 @UiHandler("addDynamicTextboxbutton")
  void addMoreTextbox(ClickEvent event) {


     textboxplaceholder.add(new TextBox(),"textboxplace");

 }

addDynamicTextboxbuttonボタンをクリックすると、このメソッドが実行され、新しいテキストボックスが作成されます。クリックしたときに各「textbox()」からすべての値を取得するように、別のボタンを作成する方法は?または、すべての値を取得できるように、名前「new textbox( "name")」を入力する必要がありますか?これを行うためのベストプラクティスの方法は何ですか?

4

2 に答える 2

2

の場合textboxplaceholderComplexPanelたとえば、 :FlowPanelの子を単純に反復処理できます。FlowPanel

for (Widget w: textboxplaceholder) {
   if (w instanceof TextBox) {
     // do something value: ((TextBox)w).getValue();
   }
}
于 2010-11-15T14:13:27.967 に答える
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すべての値を取得します。

于 2010-11-15T13:33:40.910 に答える