次のJavaおよびHTMLコードがあります。
this.leakageModel = new PropertyListView<Leakage> ( "leakage", new ArrayList<Leakage> ()) {
private static final long serialVersionUID = 1L;
@Override
protected void populateItem (final ListItem<Leakage> item) {
Link<String> brandLink = new Link<String> ("brandLink") {
private static final long serialVersionUID = -480222850475280108L;
@Override
public void onClick () {
//change another model in the page to update
//another table when the link is clicked
}
};
brandLink.add (new Label ("brand"));
item.add (brandLink);
} };
add (this.leakageModel);
html ファイル:
<tr wicket:id="leakage" class="testClass">
<td class="testClass">
<a wicket:id="brandLink" href="#">
<span wicket:id="brand"></span>
</a>
</td>
</tr>
私がやりたいことは、onClick() メソッド内から JavaScript 関数を呼び出せるようにすることです。
現在 onClick メソッド内で行っているモデルの更新はうまく機能し、ページ上の別のテーブルを更新します。
ただし、javascript 関数を呼び出したり、css スタイルを変更しようとしたことはすべて失敗しました。
例えば:
css クラスの追加:
add (new AttributeAppender("クラス", new Model("別のクラス"), " "));
代わりに AjaxLink 型を使用し、他の多くのことを試してみましたが、役に立ちませんでした。
関連するメモとして、最初の意図は、クリックした行を除くテーブル内のすべての行を非表示にすることです。たぶん、Javaコードからこれを行うことができ、Javascriptはまったく必要ありませんが、上記のようにcssを更新しても機能しません。
私が間違っていることについて何か提案はありますか?