나는 ListView
입니다.Wicket에서 어떤 버튼이 활성화되어 있는지 확인하십시오.
@Override
protected void populateItem(ListItem<Test> test) {
// TODO Auto-generated method stub
Test t = test.getModelObject();
IndicatingAjaxFallbackLink link = new IndicatingAjaxFallbackLink("categoryMenuItemLink", t)
test.add(link)
}
이 같은 HTML
을 생성합니다 :
<a>Test 1</a>
<a>Test 2</a>
내 응용 프로그램에 내가 활성화 된 links
추적 할 필요 이것은 populateItem
-Method입니다.
public class MyLink extends IndicatingAjaxFallbackLink<String> {
private boolean isActive;
public CategoryAjaxLink(String id) {
super(id);
this.setOutputMarkupPlaceholderTag(true);
}
@Override
public void onClick(AjaxRequestTarget target) {
this.isActive = true;
// Load images into different panel...
}
을하지만 지금 문제는 내가 모두 links
를 클릭하면 다음 모두 활성으로 설정 될 것입니다 : 그래서 내 첫번째 생각은 다음과 같이 내 자신의 IndicatingAjaxFallbackLink
, 뭔가를 위치 : implemeting했다. 또 다른 방법은 AttributeModifier
을 사용하는 것이었지만 CSS가 링크를 활성화한다고 선언 할 수 있기 때문에 다시 실패했습니다. 성취하고자하는 것은 무엇입니까? 논문 번호 links
은 많은 이미지를로드하는 다른 패널을 업데이트합니다. 그리고 처음에는 link
이 항상 활성화되므로 이미지가 기본적으로로드됩니다. 두 번째 링크를 클릭하면링크가 활성화되고 다른 이미지로드가 시작됩니다.
그러나 populateItem
을 통해 링크를 만들 때 link
이 활성화 된 상태를 유지하려면 어떻게해야합니까? 난 당신이 각 링크에 대해 동일한 모델 인스턴스를 사용할 필요가이 작품을 만들기 위해 말했듯이
public class MyLink extends IndicatingAjaxFallbackLink<String>
private final IModel<String> activeLink;
public CategoryAjaxLink(String id, IModel<String> activeLink) {
super(id);
this.setOutputMarkupPlaceholderTag(true);
this.activeLink = activeLink;
}
@Override
public void onClick(AjaxRequestTarget target) {
activeLink.setObject(getId());
// Load images into different panel...
}
public boolean isActive() {
return getId().equals(activeLink.getObject());
}
: