0

我正在构建自己的 PageRow 组件,我试图弄清楚如何在将选择值从 10 个结果更改为 50 后重新加载页面。我也需要在刷新期间设置一个查询参数,我想我可以做到这使用 onChanged 事件,但这不起作用。有人对如何做到这一点有任何想法吗?

4

2 回答 2

1

由于您不需要 POST 值,因此您实际上不需要使用 select 组件。

爪哇

@Property private int currentRows;

@Inject private ComponentResources resources;

public Link getEventLink(int rows) {
    Link link =  resources.createEventLink("setRows", rows);
    link.addParameter("foo", "bar");
    return link;
}

Object onSetRows(int rows) {
    ...
    return this;
}

TML

<select id="rows">
    <t:loop source="[10,20,30,40,50]" value="currentRows">
        <option value="${getEventLink(currentRows)}">${currentRows}</option>
    </t:loop>
</select>

Javascript (jQuery)

$('#rows').change(function() {
    document.location.href = $(this).val();
});

您可以轻松地调整它并使用适当的SelectModelselect组件。

于 2013-10-21T15:28:21.377 回答
0

在服务器端,@Inject ComponentResources 并使用 createEventLink(...) 为每个选项 (10-50) 生成事件 url。

在客户端,将更改侦听器附加到设置 window.location.href 并导致加载事件 url 的选择。

于 2013-10-21T10:16:03.730 回答