首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Xpages重复控件获取inputText的id

Xpages重复控件获取inputText的id
EN

Stack Overflow用户
提问于 2014-09-11 19:06:29
回答 1查看 700关注 0票数 1

我有一个xpages,其中有一个repeat控件,并且我添加了一个按钮来增加重复次数。在repeat中,我有一个inputText和一个ComputedField。我想获取每个inputText的ID并对其执行一些操作,也许可以添加它们。我向repeat添加了一个索引,我的索引的标签是: inputText $( index )。我想通过getComponent (“输入”+索引)来访问,但是它显示:getComponent is null。为什么?

inputText id是什么?

附言:代码如下:

代码语言:javascript
运行
复制
<xp:this.beforePageLoad><![CDATA[#{javascript:sessionScope.dynaField=parseInt("1")}]]></xp:this.beforePageLoad>

    <xp:div style="text-align:center">
        <xp:inputText id="number" defaultValue="100">
            <xp:this.converter>
                <xp:convertNumber type="number" integerOnly="true"></xp:convertNumber>
            </xp:this.converter>
        </xp:inputText></xp:div>
    <xp:panel id="Panel_All" style="text-align:center">


        <xp:repeat id="repeat1" var="testCollection" indexVar="index"
            value="#{javascript:parseInt(sessionScope.dynaField)}" rows="120"
            style="border:1pt" repeatControls="false" first="0">
            <xp:inputText id="input${index}">

                <xp:eventHandler event="onchange" submit="true"
                    refreshMode="partial" refreshId="repeat1">
                </xp:eventHandler>
            </xp:inputText>


            <xp:text escape="true" id="comp">

                <xp:this.value><![CDATA[#{javascript:var repeatValue = getComponent("repeat1").getValue();
var number1 = getComponent("number").getValue();
var number2 = getComponent("input").getValue();

return number1-number2;
}]]></xp:this.value>
            </xp:text>

            <xp:br></xp:br></xp:repeat>



        <xp:br></xp:br>


        <xp:br></xp:br>
        <xp:table style="width:100%">

            <xp:tr>
                <xp:td colspan="2" style="text-align:center">
                    <xp:button value="Add Document" id="button1">
                        <xp:eventHandler event="onclick" submit="true"
                            refreshMode="partial" refreshId="Panel_All">
                            <xp:this.action><![CDATA[#{javascript:sessionScope.dynaField=parseInt(sessionScope.dynaField)+1
getComponent("repeat1").setValue(parseInt(sessionScope.dynaField));}]]></xp:this.action>
                        </xp:eventHandler>
                    </xp:button>

                </xp:td>

            </xp:tr>
        </xp:table>
        </xp:panel>

我有第一个带有id号的inputText,其中是初始编号。然后,repeat有一个输入文本和一个计算字段,显示repeat中的“inputText”、first inputText和number之间的差异。然后,如果用户单击按钮,repeat和与该字段相关的计算字段中会显示一个新的数字,结果应该是:( inputText )-第1个inputText in the repeat -第2个inputText in该字段。

谢谢,

弗洛林

EN

回答 1

Stack Overflow用户

发布于 2014-09-11 19:30:59

我不确定这是不是最好的方法。我从来没有像那样从repeat控件本身中提取数据。我宁愿回到磁盘上,用这种方式计算它。

假设您希望在repeat控件之外获得这些合计,我将使用SSJS或Java函数来获取合计并以这种方式表示它。实际上,您可以在repeat控件本身中做到这一点。您可以使用domino对象模型来收集文档……此时执行任何您想要的计算,并将结果存储在viewScope中,然后将所选文档的viewEntryCollection返回给重复控件...

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25785831

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档