Pergunta sobre datatable, wicket, clickable – fazendo com que toda a linha de um arquivo com base em dados de clicagem seja clicável

9

É possível tornar toda a linha de um DataTable Wicket clicável? se sim, como? Eu vi exemplos de como tornar uma célula clicável estendendo a classe PropertyColumn, que é bastante fácil, mas não consegue encontrar uma solução fácil para a linha inteira.

Eu não acho que há uma solução mais fácil para isso do que usar o seu próprioPropertyColumn implementação. Você poderia dar uma olhadanewRowItem noDataTable classe e o método substituídonewRowItem noDataGridView. rotsch

Sua resposta

1   a resposta
19

isso faz o trabalho.

//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;

}
Como você sabe qual objeto foi clicado no método onEvent? DavidVdd
pelo modelo, internamente wicket tem uma faixa da relação entre as linhas e objetos osdamv
Resposta muito útil. Além disso, sobrescrevendo este método me permite definir o id de marcação de cada linha, o que é muito útil no meu caso, pois tenho que acionar um evento jQuery para destacar a linha recém-inserida que disparou uma atualização da DataTable. Anthony Richir
Existe alguma maneira de retornar um documento em um clique de linha? Eu recebo erros Ajax quando tento retornar um ResourceStreamRequestHandler (que contém um PDF que eu gero na hora quando você clica na linha). Johncl
@Johncl eu acho que sim, eu tentaria fazer o meu próprio ajaxbehaivor, no entanto, cerca de um ano eu não programo no wicket :( osdamv

Perguntas relacionadas