Заменить текст внутри калитки AjaxLink - PullRequest
2 голосов
/ 23 февраля 2011

Я создал новый AjaxLink в своем файле .java

add(new AjaxLink("link"){                                                                                                                                                                                                                                                                                                  
private static final long serialVersionUID = 1L;                                                                                                       

@Override                                                                                                                                              
public void onClick(AjaxRequestTarget target) {                                                                                                        
target.appendJavascript("window.open('http://www.cnn.com/2011/WORLD/africa/02/23/libya.protests/index.html?hpt="+T1+"')");              
}                                                                                                                                                      
});

и добавил его в мой файл .html

<a href="#" wicket:id="link">TEXT TO REPLACE</a> 

URL-адрес является лишь примером, но T1 является динамическими я получаю это из моего файла .java.Я хотел бы, чтобы «ТЕКСТ ЗАМЕНИТЬ» равнялся строке Т1, но я не знаю, как это сделать.Я попытался создать ярлык и добавить его как

<a href="#" wicket:id="link"><span wicket:id="linkLbl"></span></a> 

, но это выдает ошибку.

Есть предложения?

Спасибо

Ответы [ 2 ]

1 голос
/ 23 февраля 2011

Label - правильное направление, но вы должны убедиться, что добавили метку и в код Java, она должна быть дочерним компонентом вашей ссылки ajax.

(В заметке: вы можете рассмотреть возможность использования <wicket:container> вместо <span>. В этом случае это не имеет большого значения, но есть случаи, когда дополнительный тег <span> сделает ваш HTML недействительным. )

0 голосов
/ 23 февраля 2011

а) Используйте общую модель для ссылки и метки, б) не забудьте обновить ссылку

IModel<String> model = // get model data from somewhere

add(new AjaxLink("link"){                                                                                                                                                                                                                                                                                                  
private static final long serialVersionUID = 1L;                                                                                                       

@Override                                                                                                                                              
public void onClick(AjaxRequestTarget target) {
target.addComponent(this); // update the link component
target.appendJavascript("window.open('http://www.cnn.com/2011/WORLD/africa/02/23"
  + "/libya.protests/index.html?hpt="+model.getObject()
     /* you probably want to encode this first */+"')");              
}                                                                                                                                                      
}).setOutputMarkupId().add(new Label("label",model));
...