Как скрыть / показать yui.calendar.DatePicker в калитке - PullRequest
0 голосов
/ 28 октября 2011

Я столкнулся с проблемой, надеюсь, вы, ребята, можете мне помочь.

Я использую DateTextField с DatePicker (из yui.calendar), они оба добавляются в WebMarkupContainer сOutputMarkupId и OutputMarkupPlaceholderTag установлены в true.

Я хочу иметь возможность установить видимость контейнера, но когда я устанавливаю его с true на false, true, средство выбора даты больше не отображается (я предполагаю, что этоэто связано с тем, что он не упомянут в 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

Я пытался удалить DatePicker из invoiceDateFromField, а затемдобавьте новый, когда для контейнера установлено значение visible, но, похоже, это тоже не сработало.

Спасибо!
Олл

1 Ответ

1 голос
/ 16 июня 2012

YUI потеряет связь с элементом DOM, когда вы установите его visible = false в Wicket (потому что узел удален из DOM). Поэтому, когда вы добавляете его обратно на страницу, у вашего экземпляра календаря YUI больше нет связанных полей в DOM. Вы должны быть уверены, что обновите свою ссылку новым экземпляром календаря каждый раз, когда вы повторно визуализируете DateTextField с Wicket

...