我遇到了一个问题,希望你们能帮助我。
我正在使用带有DatePicker的DateTextField(来自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
我尝试从invoiceDateFromField中删除DatePicker,然后在容器设置为visible时添加一个新的,但这似乎也不起作用。
谢谢!
欧莱
答案 0 :(得分:1)
当您在Wicket中将它设置为visible = false时,YUI将失去与DOM元素的连接(因为该节点已从DOM中删除)。因此,当您将其添加回页面时,您的YUI日历实例不再在DOM中具有任何关联字段。每次使用Wicket重新渲染DateTextField时,您需要确保使用新的日历实例更新引用