Изменить атрибут родительского тега Wicket ComponentTag - PullRequest
2 голосов
/ 23 июня 2011

У меня есть форма калитки.В этой форме есть несколько входных тегов.Эти входные теги помещаются в контейнеры div.Эти контейнеры div "делают" стиль (т.е. имеют классы стилей).Я хочу получить доступ к этому стилю тега div, если проверка дочернего ввода не удалась.Я пытался сделать это с поведением, но я не могу получить доступ к тегу div (который будет родителем тега ввода).Любые идеи, как я могу изменить стиль родительского тега div в случае сбоя проверки?

<div style="myStyle">
    <label>Field1</label> <input type="text"/>
</div>

Спасибо

1 Ответ

6 голосов
/ 23 июня 2011

Перво-наперво: в Wicket вы можете изменять только разметку компонента.Конечно, все на вашей странице - это разметка компонента того или иного, в худшем случае, вашего Page класса.

Но вы определенно не хотите изменять способ, которым ваш класс страницы генерирует свой вывод.Это означает, что вы также должны сделать содержащийся в нем компонент компонентом.

<div wicket:id="myInputContainer">
    <label>Field1</label> <input wicket:id="myInput" type="text"/>
</div>

И поскольку больше нет функциональности, которую вам нужно делать с контейнером, в коде Java используйте класс WebMarkupContainer.

WebMarkupcontainer cont = new WebMarkupContainer( "myInputcontainer" );
cont.add( new Textfield( "myInput" ) );
form.add( cont );

И отсюда легко, вы можете прикрепить свой Behavior к контейнеру, а Боб - ваш дядя.

...