2012-05-29 19 views
9

Wicket DataTableの行全体をクリック可能にすることはできますか?もしそうなら、どうですか? PropertyColumnクラスを拡張することによってセルをクリック可能にする方法の例を見てきましたが、これはかなり簡単ですが行全体に対して簡単な解決策が見つからない場合があります。Wicketデータテーブルの行全体をクリック可能にする

ありがとうございました

+0

独自の「PropertyColumn」実装よりも簡単な解決策はないと思います。 'DataTable'クラスの' newRowItem'と 'DataGridView'のオーバーライドされたメソッド' newRowItem'を見ることができます。 – rotsch

答えて

19

これは作業を行います。

//override this method of the DataTable class 
@Override 
protected Item<T> newRowItem(String id, int index, final IModel<T> model) { 

    Item<T> rowItem = new Item<T>(id, index, model); 
    rowItem.add(new AjaxEventBehavior("onclick") { 

     private static final long serialVersionUID = 6720512493017210281L; 

     @Override 
     protected void onEvent(AjaxRequestTarget target) { 
     //callback or do some stuff 
     } 

    }); 
    return rowItem; 

} 
+0

非常に有益な答えです。さらに、このメソッドをオーバーライドすると、各行のマークアップIDを設定できます。これは、DataTableのリフレッシュをトリガーした新しく挿入された行を強調表示するjQueryイベントをトリガーする必要があるためです。 –

+0

どのオブジェクトがonEventメソッドでクリックされたのか、どのように知っていますか? – DavidVdd

+0

モデルでは、内部でwicketは行とオブジェクトの間の関係のトラックを持っています – osdamv

関連する問題