Ajaxrequest с Wicket, но с несколькими возможными значениями модели - PullRequest
0 голосов
/ 30 марта 2010

Я новичок в калитке и застрял со следующей проблемой:

У меня есть таблица с 5 строками. Каждый ряд содержит 7 ячеек. Каждая ячейка имеет уникальное значение. После щелчка по ячейке ее уникальное значение должно быть отправлено на сервер.

Я хотел бы зарегистрировать только одну ajaxfallbacklink (или аналогичную) в таблице и настроить значение модели в соответствии с уникальным значением ячейки, по которой щелкнули.

Ответы [ 3 ]

1 голос
/ 01 апреля 2010

Мой немедленный ответ: «Почему вы хотите так?» - очевидное решение - добавить поведение ajax onClick для каждого компонента ячейки / содержимого ячейки (очевидно, вам нужно написать только одно поведение). Вот как это работает.

Вы можете написать обработчик так, как вы предлагаете, но он должен будет пролистать дерево компонентов таблицы, добавляя правильные обратные вызовы JS onClick для каждой ячейки. Затем вам нужно подумать о семантике добавления поведения onClick к компоненту, который фактически не выражает событие onClick.

В основном это загруженный пользовательский код, обходящий фреймворк (довольно аккуратная) модель ajax без какой-либо выгоды.

0 голосов
/ 28 апреля 2010

Очевидно, что для этого потребуется, чтобы JavaScript на стороне клиента извлекал информацию для отправки на сервер. когда эта информация готова, следующий код может создать обратный вызов ajax (из подкласса AbstractDefaultAjaxBehavior)

generateCallbackScript (новый AppendingStringBuffer ("wicketAjaxPost (\ '"). Append (getCallbackUrl (false)). Append ("\', 'param =' + Wicket.Form.encode (yourDataGoesHere)"));

и RequestCycle.get (). GetRequest (). GetParameter ("param") для получения декодированного значения на стороне java вещей.

0 голосов
/ 30 марта 2010

Как вы вообще можете узнать, какая ячейка была нажата, когда у вас есть только один обработчик для всех? Звучит почти невозможно.

Но проблема с калиткой проста, вы всегда можете написать собственную IModel или расширить AbstractReadOnlyModel. Вам нужно реализовать только один метод, getObject ().

...