gwtp使用DOM访问uibinder输入、div和span

gwtp使用DOM访问uibinder输入、div和span,dom,gwt,uibinder,gwtp,Dom,Gwt,Uibinder,Gwtp,我想使用DOM或presenters中的文档接口访问uibinders中的元素,是否可能 想要获取元素并将处理程序附加到它 我在uibinders中有input、select、div、span元素。是否有可能实现 我尝试使用DOM获取文档,它返回null <g:HTMLPanel styleName="{style.content1}" ui:field="containerPanel1"> <div class="{style.rightAlign}"

我想使用DOM或presenters中的文档接口访问uibinders中的元素,是否可能

想要获取元素并将处理程序附加到它

我在uibinders中有input、select、div、span元素。是否有可能实现

我尝试使用DOM获取文档,它返回null

    <g:HTMLPanel styleName="{style.content1}" ui:field="containerPanel1">
        <div class="{style.rightAlign}" id="container">
            <g:FormPanel styleName="{style.formLayout}" ui:field="formPanel1">
                <g:HTMLPanel width="100%" height="100%">
                    <div id="inner" class="{style.horiCon}">
                        <div class="{style.label}">
                            <ui:msg key="name" description="Name of the user">Name</ui:msg>
                        </div>
                        <input type="text" id="firstName" name="name"
                            placeholder="FirstName" class="{style.textboxFirstName}" />
                        <input type="text" id="lastName" placeholder="LastName"
                            name="name" class="{style.textboxLastName}" />
                        <span id="nameError" class="{style.errorMsgHide}">Error</span>
                    </div>
                </g:HTMLPanel>
            </g:FormPanel>
        </div>
    </g:HTMLPanel>
我越来越

java.lang.AssertionError: A widget that has an existing parent widget may not be added to the detach list
    at com.google.gwt.user.client.ui.RootPanel.detachOnWindowClose(RootPanel.java:136)
    at com.google.gwt.user.client.ui.TextBox.wrap(TextBox.java:69)
问题是什么?我可以在presenter中使用Rootpanel获取引用吗? 请帮帮我

提前感谢,, Jose.

要访问DOM元素,元素需要先连接到DOM,否则将返回null。您可以在ui绑定器java类的重写onLoad方法中使用DOM.getElementByIDid

@Override
void onLoad()
{
    DOM.getElementByID("id");
}
您提到了uibinders中的input、select、div、span元素。为什么不使用ui:field并直接访问该字段以添加处理程序等?只是一个想法。
select is GWT ListBox那里有FlowPanel同样是一个div。

请发布您尝试的确切代码以及哪些行产生了问题。我正在使用gwtp,我在uibinder中有上述内容,我需要使用哪个类加载DOM.getElementById工作。这属于Widget。有一个名为uibinder file的java文件。但它没有onload方法。公共类TestInsertView扩展了ViewImpl实现TestInsertPresenter.MyView{}它没有onload方法。您正在谈论复合实现,但我有一个ViewImpl实现类,如何才能访问此类中的DOM元素。
java.lang.AssertionError: A widget that has an existing parent widget may not be added to the detach list
    at com.google.gwt.user.client.ui.RootPanel.detachOnWindowClose(RootPanel.java:136)
    at com.google.gwt.user.client.ui.TextBox.wrap(TextBox.java:69)
@Override
void onLoad()
{
    DOM.getElementByID("id");
}