gpt4 book ai didi

GWT:如何从 RootPanel 获取对按钮的引用?

转载 作者:行者123 更新时间:2023-12-04 21:54:02 25 4
gpt4 key购买 nike

我正在使用 GWT 2.4。在我的 onModuleLoad 方法中,给定一个字符串 id,如何从 RootPanel 对象获取对页面上现有按钮的引用?我正在尝试这个

public void onModuleLoad() {
...
final Button submitButton = (Button) RootPanel.get("submit");

但得到编译错误,“无法从 RootPanel 转换到按钮”。

编辑:

我认为使用迭代器可以治愈痛苦,但没有骰子。这是加载的默认 HTML(注意带有 id="submit"的按钮)...
<div>

<form name="f">

File name: <input type="text" size="25" id="filename" name="filename"

value="" /> <input type="button" id="submit" name="submit"

value="Submit" /> <input type="hidden" name="curId" id="curId"

value="" />

</form>

</div>

<div id="content"></div>

但是 onModuleLoad 中的这段代码会导致 NullPointerException(因为找不到 submitButton id)...
public void onModuleLoad() {

final Button submitButton = (Button) getWidgetById("submit");
submitButton.addStyleName("submitButton");
...

private Widget getWidgetById(final String id) {
Widget eltToFind = null;
final Iterator<Widget> iter = RootPanel.get().iterator();
while (iter.hasNext()) {
final Widget widget = iter.next();
final Element elt = widget.getElement();
if (elt.getId() != null && elt.getId().equals(id)) {
eltToFind = widget;
break;
} // if
} // while
return eltToFind;
}

谢谢, - 戴夫

最佳答案

您可以使用 Document.get().getElementById("submit").<InputElement>cast() 获取输入元素,但您将无法获得 Button小部件出来了。

如果您将代码更改为 <button type="button" id="submit" name="submit" value="Submit">而不是 <input> (技术上不需要 type=button 部分,但有些浏览器会把它当作 type=submit 如果你不需要),那么你可以使用 Button.wrap() :

Button button = Button.wrap(Document.get().getElementById("submit"));

关于GWT:如何从 RootPanel 获取对按钮的引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7906038/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com