我在<a/>
標記中有一個組件,它在點擊時打開一個彈出窗口。這是一個適用於KML文件的「添加到最愛」鏈接。我的KML文件有一個名爲「favorite [boolean]」的字段。現在我想隱藏或顯示我的「添加到最愛」鏈接。在Wicket中隱藏組件
public class CustomTracksAjaxDataTable<T> extends CustomAjaxDataTable<T> {
public CustomTracksAjaxDataTable(String id, List<IColumn<T>> iColumns,
ISortableDataProvider<T> tiSortableDataProvider, int rowsPerPage) {
super(id, iColumns, tiSortableDataProvider, rowsPerPage);
}
protected void onEventHandler(AjaxRequestTarget ajaxRequestTarget,
KMLFile file) {
setKMLData(file); // it just update map, dont care about it
add(new FavouriteStarIconState(file.isSaved()));
}
}
我嘗試添加因而行爲:
<div id="map_container">
<a wicket:id="favourite_star" class="map_container_star"></a>
</div>
這ISN」:
public class FavouriteStarIconState extends AbstractDefaultAjaxBehavior {
private boolean isFavourite;
public FavouriteStarIconState(boolean isFavourite) {
super();
this.isFavourite = isFavourite;
}
@Override
protected void respond(AjaxRequestTarget target) {
if (isFavourite) {
target.appendJavascript("jQuery('.map_container_star').css(
{'display' : 'none' });");
} else {
target.appendJavascript("jQuery('.map_container_star').css(
{'display' : 'block' });");
}
}
@Override
public void renderHead(IHeaderResponse response) {
response.renderOnLoadJavascript(getCallbackScript().toString());
}
}
包含該組件的HTML的一部分與一個表生成的KML列表不工作。我得到了與component.setVisible(false)
相同的結果。我怎樣才能隱藏起來工作?
你是否看了'ISVISIBLE()''Component'的方法是什麼?你可以覆蓋它,Wicket會處理剩下的事情,你只需要將組件添加到'AjaxRequestTarget'。這個解決方案有一些限制,但通常是有效的。 – biziclop