2014-07-23 6 views
2

Как получить HTML Elmement (или DOM) в Ваадине?
В GWT я могу использовать как DOM.getElementById("myId"); Я могу установить id атрибут на мои компоненты Vaadin на setId() метод. Например:Vaadin: Как получить элемент по ID?

Button button = new Button("Say Hello"); 
    button.setId("myButton"); 

Итак, как я могу получить этот элемент DOM в Ваадине?

+0

Я уверен, что [это] (http://stackoverflow.com/questions/13948089/how-to-access-an-image -dom-element-with-vaadin-gwt) вопрос и ответы не для меня решения, потому что это для GWT не для ваадина. – Cataclysm

+6

Vaadin - это серверная структура, поэтому вы не можете получить доступ к элементу HTML на серверном коде. –

ответ

1

Этот ответ распространяется на комментарий Vaadin expert, Henri Kerola.

Vaadin - это приложение для приложений на стороне сервера. Цель состоит в том, чтобы защитить разработчика приложения от деталей HTML, CSS, JavaScript, DOM, GWT, HTTP, WebSocket и таких веб-технологий. Разработчик приложения пишет в чистом Java (и, возможно, крошечный штрих CSS для настройки). Vaadin прозрачно и автоматически создает магию HTML-CSS-JavaScript-GWT-DOM, необходимые для визуализации представления пользовательского интерфейса приложения в веб-браузере.

Таким образом, нет доступа к DOM с этой серверной стороны Java и вообще не нужно делать этого.

Если вы хотите взять под контроль веб-технологии, то Vaadin, вероятно, не самая лучшая структура для вас.

+0

И вы не могли получить элемент по id в Ваадине? См. Следующие ссылки: http://stackoverflow.com/questions/13948089/how-to-access-an-image-dom-element-with-vaadin-gwt, https://vaadin.com/directory# ! addon/dom, https://vaadin.com/api/7.1.8/com/google/gwt/user/client/DOM.html – DarioBB

1

Вы можете использовать это:

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 
} 

Источник: https://vaadin.com/forum/#!/thread/3199995/3199994

Смежные вопросы