我有一個輸出標記佔位符標籤設置爲true的容器。我只想在某個文本字段中輸入某個字符串時才顯示它。例如,如果我在文本字段中顯示數字「顯示」,容器會出現,如果我數字「隱藏」它會消失。我做了這段代碼:容器可見性控制改變Wicket 1.4文本字段的行爲
container.setOutputPlaceHolderTag(true);
container.setOuputMarkupId(true);
textfield.add(new OnChangeAjaxBehavior() {
@Override
protected void onUpdate(AjaxRequestTarget target) {
form.modelChanged();
if ("SHOW".equals(textfield.getModelObject())) {
container.setVisible(true);
} else {
container.setVisible(false);
}
target.addComponent(container);
}
這段代碼只有在我寫SHOW的時候才起作用,但是當我寫另一個字符串時它並沒有消失。爲了讓它消失,我必須刷新它們所進入的整個表單(而且我不需要它)。 我該如何解決這個問題?
一些細節:我引用的所有組件都在一個窗體中,並且只有當我刷新窗體setVisible(false)時才起作用。從現在開始,只有setVisible(true)才起作用,看起來容器在可見性方面確實如此。
您是否嘗試過的明確文本字段添加到AjaxRequestTarget? –
你是什麼意思,明確添加?什麼? – andPat
target.addComponent(textfield); –