2011-10-28 74 views
0

私は問題に遭遇しました。皆さんが私を助けてくれることを願っています。wicketでyui.calendar.DatePickerを表示/非表示にする方法

DatePicker(yui.calendarから)でDateTextFieldを使用していますが、両方ともOutputMarkupIdとOutputMarkupPlaceholderTagをtrueに設定してWebMarkupContainerに追加されています。

私はコンテナの可視性を設定できるようにしたいが、trueからfalseに設定すると、datepickerは表示されなくなる(私はそれが、 HTML(?))、私は再度DatePickerを見るためにページ全体をリロードして(そして入力データを緩めなければならない) DateTextFieldに問題はありません。これを回避する良い方法はありますか?

JAVA:

invoiceDateFromField = new DateTextField("invoiceDateFromField", new PropertyModel(this, "invoiceDateFrom"), new PatternDateConverter("yyyy-MM-dd", true)); 
    invoiceDateFromField.setOutputMarkupPlaceholderTag(true); 
    invoiceDateFromField.add(new DatePicker()); 
    containsAllContainer.add(invoiceDateFromField); 

AjaxLinkのonClick:

containsAllContainer.setVisible(!containsAllContainer.isVisible()); 
target.add(containsAllContainer);//Edit 

私はinvoiceDateFromFieldから日付ピッカーを削除し、コンテナが表示さに設定されている場合、新しいものを追加しようとしましたが、これはしませんでしたどちらもうまくいくようです。

ありがとうございます!
Olle

+0

['add()'](http:// www)でコンテナをAjaxRequestTargetに追加していますか? .jarvana.com/jarvana/view/org/apache/wicket/wicket/1.5-M3/wicket-1.5-M3-javadoc.jar!/org/apache/wicket/ajax/AjaxRequestTarget.html#add(org.apache。 wicket.Component ...))? –

+0

はい。編集しました、それを指摘してくれてありがとう。 – bumaklion

+1

コンテナを隠す(または表示する)ために何をクリックしますか? – Jack

答えて

1

Wicketでvisible = falseを設定すると(ノードがDOMから削除されているため)、YUIのDOM要素への接続が失われます。したがって、ページに戻すと、YUIカレンダーのインスタンスにDOM内の関連フィールドがなくなります。 WicketでDateTextFieldを再レンダリングするたびにリファレンスを新しいカレンダーインスタンスで確実に更新する必要があります