Vaadin 瓦丁:如何通过ID获取元素?
如何在Vaadin中获取HTML元素(或DOM?Vaadin 瓦丁:如何通过ID获取元素?,vaadin,vaadin7,Vaadin,Vaadin7,如何在Vaadin中获取HTML元素(或DOM?在GWT中,我可以使用DOM.getElementById(“myId”) 我可以通过setId()方法在我的Vaadin组件上设置id属性。例如: Button button = new Button("Say Hello"); button.setId("myButton"); 那么,如何在Vaadin中检索这个DOM元素呢?Vaadin 10(Vaadin流) 新一代取代了for的内部使用 如果您愿意,这种新的体系结构为我们
在GWT中,我可以使用DOM.getElementById(“myId”)代码> 我可以通过
setId()
方法在我的Vaadin组件上设置id属性。例如:
Button button = new Button("Say Hello");
button.setId("myButton");
那么,如何在Vaadin中检索这个DOM元素呢?Vaadin 10(Vaadin流)
新一代取代了for的内部使用
如果您愿意,这种新的体系结构为我们提供了从基于Java的服务器端直接访问DOM的方便。您可以读取DOM,也可以操作DOM中的元素。阅读新元素API
瓦丁6号、7号和8号()
这一回答进一步阐述了作者的评论
是一个服务器端应用程序框架。它的目的是保护应用程序开发人员不受、、、等web技术细节的影响。应用程序开发人员使用纯文本编写(可能还有一点CSS调整)。Vaadin透明自动地生成HTML CSS JavaScript GWT DOM,该DOM是在web浏览器中呈现应用程序用户界面所必需的
因此,没有办法从Java服务器端访问,通常也不需要这样做
如果您想控制web技术,那么可能不是最适合您的框架。您可以使用以下方法:
public static Component findComponentById(HasComponents root, String id) {
for (Component child : root) {
if (id.equals(child.getId())) {
return child; // found it!
} else if (child instanceof HasComponents) { // recursively go through all children that themselves have children
Component result = findComponentById((HasComponents) child, id);
if (result != null) {
return result;
}
}
}
return null; // none was found
}
来源:在Vaadin8中,您可以尝试以下方法:
JavaScript.getCurrent().execute(“document.getElementById('refreshButton')。click()” 我确信问题和答案对我来说不是解决方案,因为它们是针对GWT而不是针对vaadin的。vaadin是一个服务器端框架,因此您无法访问服务器端代码中的HTML元素。@HenriKerola在vaadin 6-7-8中为True,但在10及更高版本中为True,称为。新的流生成将取代。现在,我们确实可以从基于Java的服务器端直接访问DOM了?请参见以下链接:,,您可以创建附加模块。