使用 JQWicket 的 AjaxSlider

发布于 2024-10-20 01:20:42 字数 912 浏览 1 评论 0原文

我将再次通过询问基础知识来展示我的新手。此后续问题与线程相关: Accessing javascript (Jquery) Variables from 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

感谢所有帮助,谢谢读到这里!

Once again I'm gonna show my noobiness by asking about the basics. This follow-up question is related to thread: Accessing javascript (Jquery) variables from Apache Wicket

I started to work with the AjaxSlider example, I have the value send back to me, but how do I render the slider component again with other parameters? I would like to change the maximum value that can be assigned to that AjaxSlider. Is there an api somewhere about this?

[the object for me is to create a label with percentages (from 0 to 100) and two sliders with which you can distribute the percentage as you please. E.g. let the user distribute money among men and women] This is the code I'm working with currently:

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

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

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

    }
});

The original example can be found here: AjaxSliderExample

Appreciate all the help and thank you for reading this far!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

じее 2024-10-27 01:20:42

您必须从 onValueChanged(..) 方法中访问底层 jqwicket 的 SliderBehavior(例如,在 onValueChanged(..) 方法中为 SliderBehavior 创建一个 getter >AjaxSlider 或使其受到保护)。之后,您可以像这样更改滑块的最大值:

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

通过这种方式,您可以操作所有可用的滑块选项(请参阅 jqwicket 的 SliderOptions 类或原始 JQuery UI Slider 文档)。

笔记!您也可以继承 jqwicket 的预定义 SliderWebMarkupContainer 来实现相同的结果。

You have to access the underlying jqwicket's SliderBehavior from within the onValueChanged(..) method (e.g. create a getter for the SliderBehavior in the AjaxSlider or make it protected). After this you can change the maximum value of the slider like this:

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

In this way you can manipulate all available slider options (see jqwicket's SliderOptions class or original JQuery UI Slider documentation).

Note! You can alternatively inherit jqwicket's predefined SliderWebMarkupContainer to achieve the same result.

无悔心 2024-10-27 01:20:42

我不熟悉 AjaxSlider,但是如果 Ajax 请求想要重新渲染任何组件,则必须将该组件添加到 AjaxRequestTarget 中。

(对此的限制是,只有具有标记 id 的组件才能通过 Ajax 请求重绘。这意味着您在创建这些组件时必须调用 setOutputMarkupId( true )

I'm not familiar with AjaxSlider, however if an Ajax request wants to re-render any component, the component has to be added to the AjaxRequestTarget.

(A restriction on this is that only components with markup ids can be redrawn by an Ajax request. This means that you have to call setOutputMarkupId( true ) on these components when you create them.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文