cevap
Bu işi yapar.
//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;
}
Çok yardımcı yanıt. Ek olarak, bu yöntemi geçersiz kılmak, her satırın işaretleme kimliğini ayarlamamı sağlar, bu da benim durumumda çok yararlıdır, çünkü yeni eklenen satırı DataTable'ı yenilemeyi tetiklemek için bir jQuery olayı tetiklemeliyim. –
OnEvent yönteminde hangi nesnenin tıklandığını nereden biliyorsunuz? – DavidVdd
modele göre, dahili olarak wicket, satırlar ve nesneler arasındaki ilişkinin bir izine sahiptir – osdamv
Bunun için kendi "PropertyColumn" uygulamanızın kullanılmasından daha kolay bir çözüm olduğunu düşünmüyorum. DataTable sınıfında "newRowItem" ve "DataGridView" içinde geçersiz kılınan "newRowItem" yöntemine bakabilirsiniz. – rotsch