As ever, Lotus gives with one hand, and then makes it totally unusable with the other, unless you spend hours on jumping through hoops with your hands tied behind your back.
Take a View with lots of records, in my case over 200 pages of 30 records. (Yes, I know this isn't a great way of finding records, but the client wants this option as one method of finding records) XPages kindly provide a Pager Control at the top and bottom of the View for you, and it can be formatted nicely with the help of some CSS. There's even SSJS classes that allow you to program actions on the View:- (Thanks John Mackey).
For a Pager:
var
pager:com.ibm.xsp.component.xp.XspPager = getComponent("pager1");
pager.gotoPage(1); //0 is first page etc.,.
For a View:
var
view1:com.ibm.xsp.component.xp.XspViewPanel=getComponent("viewPanel2");
view1.gotoPage(1);
Oh joy of joys? No! If you want to jump to Page 20 from Page 1, tough!! It will only take you to page 9. Why? It seems because there are only 8 page links displayed in the Group pageControl (aka Page Selector). So here come the hoops ...
So through trial and error, I added a separate Pager Control to the XPage set its pageCount to 999. Its only pageControl is a Group one setting its style to font size 0 and text colour to be the same as the background. Thus it doesn't appear visible on the page, but is still rendered.
Then using a technique from The XPages Blog I added an Input Control and Link to the Pager Control within the actaul View ...
http://xpagesblog.com/xpages-blog/2010/4/7/adding-controls-inside-a-pager.html


XML for extra "hidden" Pager Control:-
<xp:pager id="pager3" for="viewPanel1"
pageCount="999">
<xp:pagerControl id="pagerControl2" type="Group"
style="color:rgb(255,255,255);font-size:0pt">
</xp:pagerControl>
</xp:pager>
Panel inside Facets of the ViewPanel:-
<xp:panel xp:key="headerPager" id="pager1"
styleClass="lotusPaging">
<xp:button value="Previous" id="button1"
outerStyleClass="lotusBtn lotusBtnSpecial lotusLeft">
<xp:eventHandler
event="onclick" submit="true" refreshMode="complete">
<xp:this.action><![CDATA[#{javascript:var view1:com.ibm.xsp.component.xp.XspViewPanel=getComponent("viewPanel1");
view1.gotoPreviousPage();}]]></xp:this.action>
</xp:eventHandler>
</xp:button>
<xp:label value="go to page"
id="label2"
style="color:rgb(0,0,255);text-decoration:underline">
<xp:eventHandler event="onclick"
submit="true" refreshMode="complete">
<xp:this.action><![CDATA[#{javascript:var pager:com.ibm.xsp.component.xp.XspPager = getComponent("pager3");
if ( getComponent( "gotoPageInput1" ).getValue() != ""