我是ria开发的新手,正在使用Ajax Slider示例。我不知道如何使用javascript事件。在此示例中,onValueChanged- event是预先实现的。如何实现说onchange-或onSlider-event?
所有帮助,不胜感激!
public abstract class AjaxSlider extends WebMarkupContainer { private static final long serialVersionUID = 1L; public AjaxSlider(String id) { super(id); super.setOutputMarkupId(true); } public JQUIComponentBehaivor<SliderOptions> getSlideBehaviors() { List behaviors = getBehaviors(); for(Object behavior : behaviors){ if(behavior instanceof SliderBehavior) return (SliderBehavior) behavior; } return null; } public abstract void onValueChanged(AjaxRequestTarget target, int newValue); @Override protected void onInitialize() { super.onInitialize(); AbstractDefaultAjaxBehavior ajaxBehavior = new AbstractDefaultAjaxBehavior() { private static final long serialVersionUID = 1L; @Override protected void respond(AjaxRequestTarget target) { String sliderValue = RequestCycle.get().getRequest() .getParameter("sv"); if (Utils.isNotBlank(sliderValue)) { onValueChanged(target, Integer.valueOf(sliderValue)); } } }; super.add(ajaxBehavior); super.add(new SliderBehavior(new SliderOptions() .changeEvent(wicketAjaxGet( ajaxBehavior, new MapBuilder<String, Object>().add("sv", js("ui.value")).build())))); } }
您提供的示例为change事件添加了一个事件处理程序。此事件处理程序的作用是向上述ajaxBehavior定义发出GET请求。然后,该行为从GET参数中提取滑块值并调用onValueChanged。
ajaxBehavior
onValueChanged
您可以向添加新的事件处理程序SliderOptions。例如:
SliderOptions
.slideEvent( wicketAjaxGet(ajaxBehavior, new MapBuilder<String, Object>() .add("sv", js("ui.value")).build()))));
每当用户移动滑块时,此处理程序都应调用ajax行为。