我正在使用wicket 1.4,我有兩個ajax鏈接A和B.我想交替顯示它們,我的意思是當我單擊鏈接B時,可見性設置爲假(A消失),反之亦然。我嘗試了setVisibility()
上的OnClick()
方法的鏈接,但它不起作用,也就是說,一個組件只會消失,只能關閉可見性而不會激活:setVisible(false)
onClick()
方法的工作原理和setVisible(true)
不是。 你能幫助我嗎?在onClick()方法中使用setVisible()更改Ajax鏈接的可見性
0
A
回答
1
2
您可以實現它redfining兩個鏈接的isVisible方法。當單擊一個鏈接時,只更改布爾變量並重新繪製鏈接。
這裏是一個草案,但我幾乎不記得的類和方法名稱:
// indicates which link is showed
boolean showA;
// I don't remember exactly the class name
AjaxLink linkA, linkB;
// For each link redefine onClick and isVisible
linkA = new AjaxLink() {
@Override boolean isVisible() { return showA; }
@Override void onClick(target) {
showA = false;
target.addComponent(linkA);
target.addComponent(linkB);
}
}
linkB = new AjaxLink() {
@Override boolean isVisible() { return !showA; }
@Override void onClick(target) {
showA = true;
target.addComponent(linkA);
target.addComponent(linkB);
}
}
2
像@polypiel的答案,但在onConfigure()
設置知名度這是一個最好的做法。
public class MyPanel extends Panel{
private boolean showLinkA = true;
AjaxLink aLink;
AjaxLink bLink;
public MyPanel(String id) {
super(id);
add(aLink = aLink());
add(bLink = bLink());
}
private AjaxLink aLink() {
AjaxLink al = new AjaxLink("aLink") {
@Override
protected void onConfigure() {
super.onConfigure();
setVisible(showLinkA);
}
@Override
public void onClick(AjaxRequestTarget target) {
showLinkA = false;
target.add(aLink, bLink);
}
};
al.setOutputMarkupPlaceholderTag(true);
return al;
}
private AjaxLink bLink() {
AjaxLink bl = new AjaxLink("aLink") {
@Override
protected void onConfigure() {
super.onConfigure();
setVisible(!showLinkA);
}
@Override
public void onClick(AjaxRequestTarget target) {
showLinkA = true;
target.add(aLink, bLink);
}
};
bl.setOutputMarkupPlaceholderTag(true);
return bl;
}
}
+0
好的。我剛剛發現,isVisible被稱爲每次請求多次。 http://wicketinaction.com/2011/11/implement-wicket-component-visibility-changes-properly/ – polypiel
相關問題
- 1. 如何更改onclick的可見性
- 2. Onclick更改類的可見性
- 3. 如何通過調用setVisible()方法檢票AJAX改變模型的可見性方法
- 4. 更改方法的可見性
- 5. 如何使用setVisible()方法設置json模型的元素的可見屬性
- 6. 用onClick更改滾動視圖中按鈕的可見性
- 7. 如何更改gridview中超鏈接字段的可見性?
- 8. 的onClick更改鏈接
- 9. 使用Javascript/JQuery更改CSS的鏈接屬性onClick?
- 10. 如何使用方向更改控制視圖可見性(可見/不可見)?
- 11. 在onClick()方法中切換元素的可見性
- 12. 使用onclick切換div的可見性
- 13. 更改可見性屬性
- 14. 無法更改日曆的可見性
- 15. 更改CSS中的可見性屬性?
- 16. 使用C++更改GUI可見性
- 17. 使用z-index更改div可見性
- 18. setVisible(true)更改所有可見的實例
- 19. onClick屬性在XML鏈接到Activity類中的方法
- 20. jQuery - 基於錨點可見性更改文本和鏈接
- 21. 更改itemRemderer的可見性
- 22. 如何使用.setVisible()方法?
- 23. 使用MVVM更改父容器的可見性更改的TextBox.Text
- 24. Android更改按鈕後的可見性onClick
- 25. 錯誤更改按鈕的可見性onClick
- 26. 使用Ajax更改div onclick的內容
- 27. 佈局更改可見性
- 28. 將鏈接更改爲活動的onclick
- 29. 如何更改實例方法的可見性
- 30. 更改片段中的TextView可見性
您是否在鏈接上設置了setOutputMarkupPlaceholderTag(true)? – pikand