将组件的值从一个自定义控件传递到另一个自定义控件

时间:2012-03-14 17:33:58

标签: xpages

我有两个自定义控件,CustomControlBody和CustomControlTitle。

CustomControlBody有一个单选按钮。 CustomControlTitle具有基于CustomControlBody中单选按钮值的计算字段。

如果CustomControlTitle放在CustomControlBody中,那么CustomControlTitle中的计算字段可以看到CustomControlBody上的单选按钮的值就好了。

但是为了设计的灵活性,我希望能够在xPage上单独放置CustomControlTitle和CustomControlBody。但是当我这样做时,CustomControlTitle似乎无法在CustomControlBody中看到单选按钮。

如何将CustomControlBody中单选按钮的值传递给CustomControlTitle中的计算字段?

1 个答案:

答案 0 :(得分:4)

您可以使用viewscope设置参数,在刷新时可以读取此var。另一种方法是使用构面创建自定义控件标题和正文(可编辑区域。您创建第三个控件,将这些控件放入并使用单选按钮和文本字段填充构面。类似于 (这不是生产准备好的,只是为了说明上述情况。)

<xp:view xmlns:xp="http://www.ibm.com/xsp/core"
    xmlns:xc="http://www.ibm.com/xsp/custom"
    xmlns:xe="http://www.ibm.com/xsp/coreex">

    <xp:this.data>
        <xp:dominoDocument var="yourdocument" action="editDocument"
            documentId="#{javascript:return compositeData.DocumentUniqueID;}"
            computeWithForm="save" formName="yourdocument">
        </xp:dominoDocument>
    </xp:this.data>


   <xp:panel>

     <xc:Title>
       <xp:textxp:key="field" value="#{javascript: rb = getComponent("radiobutton"); return cb.getValue();}"/>
     </xc:Title>
     <xc:Body>  

    <xp:radioGroup id="radioGroup1" xp:key="fields">
        <xp:eventHandler event="onchange" submit="true"
            refreshMode="partial" refreshId="titleControl">
            <xp:this.action><![CDATA[#{javascript:viewScope.value = this.getValue();}]]></xp:this.action>
        </xp:eventHandler></xp:radioGroup>
     </xc:Body>

</xp:panel>

</xp:view>
相关问题