xpages 中的自定义寻呼机 [英] Custom Pager in xpages

查看:24
本文介绍了xpages 中的自定义寻呼机的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试创建一个与寻呼机结合的页面计数器,我发现了这篇有趣的文章:

http://www.mydominolab.com/2010/10/repeat-control-better-navigation.html

我可以正常工作,但想更改页面编号.在组合框中当一个页面没有.在寻呼机中单击(寻呼机目前正在进行部分刷新).我首先想到了组合框的 defaultValue 属性,但这没有用.请问有什么想法吗?

这是一些示例代码:

<xp:panel style="font-size: 11px !important;"><xp:panel id="pagerArea" xp:key="headerPager"><div style="float:left">页面:&#160;<xp:comboBox id="cmbPages"><xp:selectItems><xp:this.value><![CDATA[#{javascript:var rptControl:com.ibm.xsp.component.xp.XspDataIterator = getComponent("rptProduct");if (rptControl == null) return [];var total = vwProduct.getAllEntries().getCount();//rptControl.getRowCount();var rowsperpage = rptControl.getRows();var totalpages = Math.ceil(total/rowsperpage);无功 arr=[];for (var i=1;i<=totalpages;i++) {arr.push(@Text(i))}返回 arr}]]></xp:selectItems><xp:eventHandlerevent="onchange" submit="true" refreshMode="partial"refreshId="数据面板"><xp:this.action><![CDATA[#{javascript:var pager:com.ibm.xsp.component.xp.XspPager = getComponent("pager1_Hidden");pager.gotoPage(parseFloat(getComponent("cmbPages").getValue()) - 1);}]]></xp:this.action></xp:eventHandler></xp:comboBox>

<xp:pager partialRefresh="true" id="pager1"for="rptProduct"><xp:pagerControl id="pagerControl1"类型="第一张图片"></xp:pagerControl><xp:pagerControl id="pagerControl8"类型="分隔符"></xp:pagerControl><xp:pagerControl id="pagerControl2"类型="上一张图片"></xp:pagerControl><xp:pagerControl id="pagerControl6"类型="分隔符"></xp:pagerControl><xp:pagerControl id="pagerControl5"类型=组"></xp:pagerControl><xp:pagerControl id="pagerControl7"类型="分隔符"></xp:pagerControl><xp:pagerControl id="pagerControl3"类型=下一个图像"></xp:pagerControl><xp:pagerControl id="pagerControl9"类型="分隔符"></xp:pagerControl><xp:pagerControl id="pagerControl4"type="LastImage"></xp:pagerControl></xp:pager></xp:面板><xp:pager partialRefresh="true"id="pager1_Hidden" for="rptProduct" layout="上一组下一个"风格=显示:无;"pageCount="1000"></xp:pager></xp:面板><div style="clear:both;"></div><br/><xp:repeat id="rptProduct" rows="16" value="#{vwProduct}"var="productRow"><xp:panel styleClass="linkPanel" id="panel1"><xp:text escape="false" id="imgHTML"><xp:this.value><![CDATA[#{javascript:getImgURLForProduct(productRow.getDocument());}]]></xp:this.value></xp:text><xp:eventHandler event="onClientLoad"submit="true" refreshMode="norefresh"></xp:eventHandler></xp:panel></xp:重复><xp:eventHandler event="onClientLoad" submit="true" refreshMode="norefresh"></xp:eventHandler></xp:面板>

致谢:感谢 Bruce Lill 的隐藏寻呼机创意.

解决方案

很少有人通过电子邮件向我提出同样的问题.从那以后我更新了我的文章.你有没有试过.

http://www.mydominolab.com/2010/10/repeat-control-better-pagination.html

基本上,您已经按照那里的说明在 beforeRenderResponse 事件中放置了一段代码.如果这不能解决问题,请告诉我.我有它在我的数据库中工作.

I am trying to create a go to page counter combined with the pager and I found this interesting article:

http://www.mydominolab.com/2010/10/repeat-control-better-navigation.html

I have it working, but would like to change the page no. in the combo box when a page no. is clicked on in the pager (pager is doing a partial refresh at the moment). I thought of the defaultValue property at first of the combo box but that didn't work. Any ideas please?

Here is some example code:

<xp:panel styleClass="bodyText" id="dataPanel">
    <xp:panel style="font-size: 11px !important;">
        <xp:panel id="pagerArea" xp:key="headerPager">
            <div style="float:left">
                Page:&#160;
                <xp:comboBox id="cmbPages">
                    <xp:selectItems>
                        <xp:this.value><![CDATA[#{javascript:var rptControl:com.ibm.xsp.component.xp.XspDataIterator = getComponent("rptProduct");
if (rptControl == null) return [];

var total = vwProduct.getAllEntries().getCount(); //rptControl.getRowCount();
var rowsperpage = rptControl.getRows();
var totalpages = Math.ceil(total/rowsperpage);

var arr=[];
for (var i=1;i<=totalpages;i++) {
arr.push(@Text(i))
}
return arr}]]></xp:this.value>
                    </xp:selectItems>
                    <xp:eventHandler
                        event="onchange" submit="true" refreshMode="partial"
                        refreshId="dataPanel">
                        <xp:this.action><![CDATA[#{javascript:var pager:com.ibm.xsp.component.xp.XspPager = getComponent("pager1_Hidden");
pager.gotoPage(parseFloat(getComponent("cmbPages").getValue()) - 1);}]]></xp:this.action>
                    </xp:eventHandler>
                </xp:comboBox>
            </div>
            <xp:pager partialRefresh="true" id="pager1"
                for="rptProduct">
                <xp:pagerControl id="pagerControl1"
                    type="FirstImage">
                </xp:pagerControl>
                <xp:pagerControl id="pagerControl8"
                    type="Separator">
                </xp:pagerControl>
                <xp:pagerControl id="pagerControl2"
                    type="PreviousImage">
                </xp:pagerControl>
                <xp:pagerControl id="pagerControl6"
                    type="Separator">
                </xp:pagerControl>
                <xp:pagerControl id="pagerControl5"
                    type="Group">
                </xp:pagerControl>
                <xp:pagerControl id="pagerControl7"
                    type="Separator">
                </xp:pagerControl>
                <xp:pagerControl id="pagerControl3"
                    type="NextImage">
                </xp:pagerControl>
                <xp:pagerControl id="pagerControl9"
                    type="Separator">
                </xp:pagerControl>
                <xp:pagerControl id="pagerControl4"
                    type="LastImage">
                </xp:pagerControl>
            </xp:pager>
        </xp:panel>
        <xp:pager partialRefresh="true"
            id="pager1_Hidden" for="rptProduct" layout="Previous Group Next"
            style="display:none;" pageCount="1000">
        </xp:pager>
    </xp:panel>
    <div style="clear:both;"></div>
    <br />
    <xp:repeat id="rptProduct" rows="16" value="#{vwProduct}"
        var="productRow">
        <xp:panel styleClass="linkPanel" id="panel1">
            <xp:text escape="false" id="imgHTML">
                <xp:this.value><![CDATA[#{javascript:getImgURLForProduct(productRow.getDocument());}]]></xp:this.value>
            </xp:text>
            <xp:eventHandler event="onClientLoad"
                submit="true" refreshMode="norefresh"></xp:eventHandler></xp:panel>
    </xp:repeat>
    <xp:eventHandler event="onClientLoad" submit="true" refreshMode="norefresh"></xp:eventHandler>
</xp:panel>

Credits: Thanks to Bruce Lill for the hidden pager idea.

解决方案

Few people e-mailed me with the same question. Since then I have updated my article. Have you tried that yet.

http://www.mydominolab.com/2010/10/repeat-control-better-pagination.html

Basically, you have put a piece of code in the beforeRenderResponse event as explained there. Let me know if that didn't resolve the problem. I have it working in my database.

这篇关于xpages 中的自定义寻呼机的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆