Вопрос по – сделав кликабельным весь ряд калитки

9

Можно ли сделать всю строку в Wicket DataTable интерактивной? если да, то как? Я видел примеры того, как сделать ячейку кликабельной, расширяя класс PropertyColumn, что довольно легко, но не может найти легкого решения для всей строки.

Я не думаю, что есть более простое решение, чем использование вашего собственногоPropertyColumn реализация. Вы могли бы взглянуть наnewRowItem вDataTable класс и переопределенный методnewRowItem вDataGridView. rotsch

Ваш Ответ

1   ответ
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;

}
по модели, внутри калитки есть трек отношения между строками и объектами
@Johncl Я так думаю, я бы попытался сделать свой собственный ajaxbehaivor, однако около года я не программирую в калитке :(
Очень полезный ответ. Кроме того, переопределение этого метода позволяет мне устанавливать идентификатор разметки для каждой строки, что очень полезно в моем случае, так как мне нужно вызвать событие jQuery, чтобы выделить только что вставленную строку, которая вызвала обновление DataTable. Anthony Richir
Как узнать, какой объект был нажат в методе onEvent?
Есть ли способ вернуть документ по щелчку строки? Я получаю ошибки Ajax, когда пытаюсь вернуть ResourceStreamRequestHandler (который содержит PDF, который я генерирую на лету, когда вы щелкаете по строке).

Похожие вопросы