如何使用js以编程方式在xpage中创建文本字段

how to create text fields in xpage programmatically using js

这里需要一点帮助。我对 JS 还是有点陌生​​,所以我很紧张。我需要在 Xpage 中使用 JS 或 SSJS 以编程方式创建文本字段,我真的迷路了。例程是当我单击一个按钮时,将添加一个文本字段。我将不胜感激每一个帮助和建议。提前谢谢你。

如果您只想添加一个文本字段,则在 XPage 中创建此字段但一开始不呈现它。该按钮可以设置 viewScope 变量,如果设置了此 viewScope 变量,文本字段的 rendered 代码将 return 为真。这样,单击按钮后该字段将可见。

如果您想动态添加多个文本字段,请使用重复控件。同样,使用一个 viewScope 变量,该变量将包含您将通过按钮设置的文本字段名称列表。此 viewScope 变量是重复控件的值 属性.

重复控制示例:

<xp:this.data>
    <xp:dominoDocument
        var="document1"
        formName="Test">
    </xp:dominoDocument>
</xp:this.data>
<xp:repeat
    id="repeat1"
    rows="100"
    value="#{viewScope.fields}"
    var="fieldName">
    <xp:label
        value="#{fieldName}"
        for="inputText1">
    </xp:label>
    <xp:inputText
        id="inputText1">
        <xp:this.value><![CDATA[#{document1[fieldName]}]]></xp:this.value>
    </xp:inputText>
    <br />
</xp:repeat>
<xp:button
    value="Add Field"
    id="button1">
    <xp:eventHandler
        event="onclick"
        submit="true"
        refreshMode="partial"
        refreshId="repeat1">
        <xp:this.action><![CDATA[#{javascript:
            if (!viewScope.fields) {
                viewScope.fields = [];
            } 
            viewScope.fields.push("field" + (viewScope.fields.length + 1));
        }]]></xp:this.action>
    </xp:eventHandler>
</xp:button>