XPages 重复控件和按钮

XPages repeat control and button

我在显示项目摘要的 XPage 上有一个重复控件。要查看其他详细信息,用户单击一个按钮(在 repeat 内),这会将 viewScope 变量设置为 repeat 的 rowIndex,然后打开一个模式以显示 remeaining 项目详细信息。

我无法通过按钮设置 viewScope 变量。就像它无法获得 rowIndex 的句柄。

我有一个计算文本字段设置为在重复开始时显示 rowIndex(效果很好)。

我显然缺少一些基本知识。如有任何帮助,我们将不胜感激。

相关源码如下:

<xp:repeat id="repeat1" rows="50" var="entry" indexVar="rowIndex">
<xp:this.value><![CDATA[#{javascript:var m = sessionScope.assetMap;
if(m!=null){
m.entrySet()
}}]]></xp:this.value>
<div>
    <small>                 
    <label>
    <xp:text escape="true" id="num">
    <xp:this.value><![CDATA[#{javascript:var itemNum:Number =     parseInt(rowIndex + 1);
itemNum.toPrecision(0);}]]></xp:this.value>
    </xp:text>
    .&#160; Description:&#160; &#160;
    </label>
    <xp:text escape="true" id="desc">
    <xp:this.value><![CDATA[#{javascript:@Word(entry.getValue(),"~",3);}]]>    </xp:this.value>
    </xp:text>
    </small>
</div>
<br></br>
<div>
<xp:button type="button" value="Details ..." id="button2">
<xp:eventHandler event="onclick" submit="true" refreshMode="complete">
<xp:this.action><![CDATA[#{javascript:try{var itemNum:Number =     parseInt(rowIndex + 1);
viewScope.currentItem = itemNum.toPrecision(0);
}catch(e) {
requestScope.errstatus = e.toString();}}]]></xp:this.action>
</xp:eventHandler>
</xp:button>

2015 年 2 月 4 日更新:

我已将问题隔离到自定义控件的呈现 属性。如果我不使用渲染的 属性.

,代码就可以工作

我的 XPage (CSJS) 的 onCLientLoad 中的代码是:

$(window).on('load resize', function(){
var screenWidth = $(window).width();
var sDevice = '';

switch(true){
    case (screenWidth < 768):
        sDevice = 'mobile';
        break;
    case (screenWidth < 922):
        sDevice = 'tablet';
        break;
    case (screenWidth >= 922):
        sDevice = 'desktop'
}

XSP.partialRefreshPost( '#{id:pnlList}', {params: {'sDevice': sDevice}} );

});

我在 XPage 中的自定义控件的来源 属性 是:

<xp:panel rendered="#{javascript:param.sDevice == 'mobile'}">
        <xc:ccSYS_AppLayoutReq_p xp:key="panelContentFacet">
            <xp:this.facets>
                <xc:cc_cartracking_p xp:key="contentFacet"></xc:cc_cartracking_p>
            </xp:this.facets>
        </xc:ccSYS_AppLayoutReq_p>  
        </xp:panel>

谢谢,

您必须在按钮中设置选项 "Set partial execution mode" execMode="partial"

在您同事的问题中寻找完整答案