XPages - repeat control - show less rows via xe:pagerAddRows possible?

97 Views Asked by At

I have for a repeat control a xe:pagerAddRows control to show more rows. I would like to display something similar to show / shrink the number of rows. I tried to set the rowCount propoerty to a negative value but this does not seem to work.

How can I achieve such a show less rows function?

1

There are 1 best solutions below

4
Knut Herrmann On

You can't use xe:pagerAddRows to reduce the number of rows - like the name anticipates.

Here is a way to create two buttons to show more or to show less rows:

<xp:this.beforePageLoad><![CDATA[#{javascript:
    viewScope.numberrows = 5
}]]></xp:this.beforePageLoad>

<xp:repeat id="repeat1" rows="#{javascript: parseInt(viewScope.numberrows)}"  ... >
    ...
</xp:repeat>

<xp:button value="show more" id="button1">
    <xp:eventHandler event="onclick" submit="true"
        refreshMode="partial" refreshId="repeat1">
        <xp:this.action><![CDATA[#{javascript:viewScope.numberrows += 5}]]></xp:this.action>
    </xp:eventHandler>
</xp:button>
<xp:button value="show less" id="button2">
    <xp:eventHandler event="onclick" submit="true"
        refreshMode="partial" refreshId="repeat1">
        <xp:this.action><![CDATA[#{javascript:viewScope.numberrows -= 5}]]></xp:this.action>
    </xp:eventHandler>
</xp:button>

You can change the property "rows" (= number of rows to show) dynamically this way. This property is available in repeat controls, view controls and other multi row controls.