2011-06-23 5 views
2

私はWicketフォームを持っています。このフォーム内にはいくつかの入力タグがあります。これらの入力タグはdivコンテナに入れられます。これらのdivコンテナはスタイルを「作る」(つまり、スタイルクラスを持つ)。 子入力の検証が失敗した場合、このスタイルのdivタグにアクセスしたいと思います。私はこれをBehaviorでやろうとしましたが、divタグ(入力タグの親となる)にはアクセスできません。検証が失敗した場合、どのようにして親divタグのスタイルを変更できますか?最初Wicketの属性を変更するComponentTag親

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

おかげ

答えて

6

まず物事を:Wicketではあなただけのコンポーネントのマークアップを変更することができます。もちろん、あなたのページにあるものは、何かのコンポーネントのマークアップです。最悪の場合はPageクラスです。

しかし、間違いなくあなたのページクラスがその出力を生成する方法を変更する必要はありません。つまり、あなたの含むdivをコンポーネントにする必要があります。

<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を添付することができます。

+2

あなたがこれをたくさんしていることがわかったら、それはカスタムパネルのための絶好の機会です。フォーム要素にはラベル、フィールド、検証インジケータ、スタイリングなどが必要です。FormComponentContainerパネルにはFormComponent(TextField、Radioなど)がいくつかあると予想され、上記のすべてを提供します。非常に便利。 – jbrookover

+0

非常に良い点。パラメータ型が内部に含まれる 'FormComponent'のクラスである汎用クラスとして書くことはおそらく有用でしょう。 – biziclop

関連する問題