gwt动态添加文本框

发布于 2024-10-02 16:40:52 字数 315 浏览 3 评论 0原文

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


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

 }

当单击 addDynamicTextboxbutton 按钮时,将执行此方法并创建新的文本框。如何有另一个按钮,以便单击时,将从每个“textbox()”获取所有值?或者是否有必要输入名称“新文本框(“名称”)”以便我可以获得它们的所有值?执行此操作的最佳实践方法是什么?

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


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

 }

when addDynamicTextboxbutton button is clicked, this method is executed and new textbox is created. how to have another button, so that when click, will get all the values from each of the "textbox()" ? or is it necessary to put name "new textbox("name")" so that i can get all their values? what is the best practice way to do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

无畏 2024-10-09 16:40:52

如果 textboxplaceholderComplexPanel 的扩展,例如 FlowPanel,您可以简单地迭代 FlowPanel 的子级:

for (Widget w: textboxplaceholder) {
   if (w instanceof TextBox) {
     // do something value: ((TextBox)w).getValue();
   }
}

If textboxplaceholder is and extend of a ComplexPanel, for example FlowPanel you could simply iterate over the children of the FlowPanel:

for (Widget w: textboxplaceholder) {
   if (w instanceof TextBox) {
     // do something value: ((TextBox)w).getValue();
   }
}
我早已燃尽 2024-10-09 16:40:52

您可以使用集合来存储新添加的 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 中的框以获取所有值。

You could use a collection to store the newly added TextBox from which you can later get all the values. Something like this:

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);
    }
}

Iterate over the boxes stored in boxes to get all the values.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文