假设我有一个包含多个文本框的布局面板。
现在我想通过它的名字在那个面板中获取一个特定的文本框。我怎样才能做到这一点?
提前致谢。
一种方法是在创建它们时将文本框的引用保留在 hashMap 中。不过,您需要小心内存泄漏。另一种方法是使用GWtQuery。然后,您可以通过名称访问 DOM 中的任何元素。
要在没有 GWTQuery 的情况下获得它,您可以这样做:
Element element = Document.get().getElementById("myTextboxID");
TextBox box = new TextBox();
box.wrap(element);
由于 gwt 没有 css-selector 实现,我会使用 gwtquery aka gquery,它的选择器实现执行得非常好。
除了许多其他功能外,它还能够返回与任何元素关联的小部件:
import static com.google.gwt.query.client.GQuery.*;
[...]
// if the textbox is already a widget
TextBox b = $("input[name=first_name]").widget();
//Or it its an element
TextBox b = TextBox.wrap($("input[name=search]").get(0));
b.setValue("Foo");