Работа с JQWicket AjaxSlider - PullRequest
       31

Работа с JQWicket AjaxSlider

0 голосов
/ 02 марта 2011

Еще раз я собираюсь показать свое любопытство, спросив об основах.Этот дополнительный вопрос относится к теме: Доступ к переменным javascript (Jquery) из Apache Wicket

Я начал работать с примером AjaxSlider, у меня есть значение, отправленное мне назад, ноКак мне сделать компонент слайдера снова с другими параметрами?Я хотел бы изменить максимальное значение, которое может быть назначено этому AjaxSlider.Есть ли где-нибудь api по этому поводу?

[цель для меня - создать ярлык с процентами (от 0 до 100) и двумя ползунками, с помощью которых вы можете распределить процент по своему усмотрению.Например, пусть пользователь распределяет деньги среди мужчин и женщин. Вот код, с которым я сейчас работаю:

 add(new AjaxSlider("ajaxSlider1") {
    private static final long serialVersionUID = 1L;

    @Override
    public void onValueChanged(AjaxRequestTarget target, int newValue) {

        System.out.println("selected_value: "+newValue);

    }
});

Оригинальный пример можно найти здесь: AjaxSliderExample

Ценю всю помощь и спасибо, что прочитали это далеко!

Ответы [ 2 ]

1 голос
/ 02 марта 2011

Вы должны получить доступ к базовому jqwicket SliderBehavior из метода onValueChanged(..) (например, создать метод получения для SliderBehavior в AjaxSlider или сделать его защищенным). После этого вы можете изменить максимальное значение ползунка следующим образом:

@Override
public void onValueChanged(AjaxRequestTarget target, int newValue) {
   this.sliderBehavior.option(target, "'max'", "10");
}

Таким образом вы можете манипулировать всеми доступными опциями слайдера (см. Класс SliderOptions jqwicket или оригинальную документацию JQuery UI Slider).

Внимание! Вы также можете наследовать предопределенный SliderWebMarkupContainer в jqwicket для достижения того же результата.

1 голос
/ 02 марта 2011

Я не знаком с AjaxSlider, однако, если Ajax-запрос хочет повторно обработать какой-либо компонент, этот компонент должен быть добавлен в AjaxRequestTarget.

(Ограничение заключается в том, что только компоненты с идентификаторами разметки могут быть перерисованы по запросу Ajax. Это означает, что вам нужно вызывать setOutputMarkupId( true ) для этих компонентов при их создании.

...