Xpages 如何在CSJS中获取重复控制索引

Xpages 如何在CSJS中获取重复控制索引,xpages,repeat,indexof,Xpages,Repeat,Indexof,我在网上搜索了一下,找到了这个 但是…这对我不起作用 这是我的代码(部分) 我想做的是,一旦用户单击输入字段,我就可以得到他编辑的行,我像LeaveBean一样使用ssjs。dosomething(detailIndex)好吧,但是如何在csjs中获得的索引呢 Marky Roden(对我来说是个了不起的人XD)建议使用attr来获得它…但是…我是xpages的新手,所以不知道如何在我自己的代码中添加它,我的意思是,我尝试添加 <xp:this.attrs> <x

我在网上搜索了一下,找到了这个 但是…这对我不起作用

这是我的代码(部分)


我想做的是,一旦用户单击输入字段,我就可以得到他编辑的行,我像LeaveBean一样使用ssjs。dosomething(detailIndex)好吧,但是如何在csjs中获得的索引呢

Marky Roden(对我来说是个了不起的人XD)建议使用attr来获得它…但是…我是xpages的新手,所以不知道如何在我自己的代码中添加它,我的意思是,我尝试添加

<xp:this.attrs>
     <xp:attr name="seanIndex"
      value="???">
     </xp:attr>
</xp:this.attrs>


但是该值不能像#{detailIndex},否则,页面将崩溃…所以我现在可以做什么…

将隐藏的文本字段添加到repeat控件中,并将索引作为值


然后,您可以使用

var index=document.getElementById(“#{id:detailindextextext}”).innerHTML
更新

不需要隐藏字段的较短版本只是:

var-index=#{javascript:detailIndex};

在repeat控件中添加一个隐藏的文本字段,并将索引作为值


然后,您可以使用

var index=document.getElementById(“#{id:detailindextextext}”).innerHTML
更新

不需要隐藏字段的较短版本只是:

var-index=#{javascript:detailIndex};

您可以通过以下方式直接在重复控件内的cjs中获取索引号:

<xp:repeat id="repeat1" rows="30" var="currentDetail" indexVar="detailIndex" value="#{LeaveBean.details}">
    <xp:inputText id="leavefrom" value="#{currentDetail.subfromtime}">
           <xp:eventHandler event="onblur" submit="false" refreshMode="partial" refreshId="repeat1">
                     <xp:this.script><![CDATA[
var index = "#{javascript: return detailIndex;}";
// do whatever with index...

]]></xp:this.script>
          </xp:eventHandler>
    </xp:inputText></xp:repeat>

表达式“#{javascript:return detailIndex}”在服务器端计算,呈现的cjs是迭代次数


通过这种方式,您可以避免在dom树中呈现隐藏输入和搜索以获取编号。

您可以通过以下方式直接在重复控件内的cjs中获取索引编号:

<xp:repeat id="repeat1" rows="30" var="currentDetail" indexVar="detailIndex" value="#{LeaveBean.details}">
    <xp:inputText id="leavefrom" value="#{currentDetail.subfromtime}">
           <xp:eventHandler event="onblur" submit="false" refreshMode="partial" refreshId="repeat1">
                     <xp:this.script><![CDATA[
var index = "#{javascript: return detailIndex;}";
// do whatever with index...

]]></xp:this.script>
          </xp:eventHandler>
    </xp:inputText></xp:repeat>

表达式“#{javascript:return detailIndex}”在服务器端计算,呈现的cjs是迭代次数


通过这种方式,您可以避免在dom树中呈现隐藏的输入和搜索以获取编号。

…谢谢KNUT…这对我很有效,那么我就知道为什么没有人问这样的问题了….==我能再问一个问题吗?我只是觉得很奇怪,当我第一次点击这个字段的时候,我不能先得到内容,我必须点击两次才能得到内容,比如,我先在字段中输入“1”,当焦点离开字段时,什么也没有发生,然后我再点击字段,然后输入“2”,当我离开字段时,我会得到“1”消息…但我想在离开字段时获取内容,我使用了XSP.partialRefreshPost(“#{id:view:_id1:repeat}”);但是…它不起作用…我错过了什么?请在一个单独的新问题中提出这个问题,并添加相关代码。谢谢克努特…谢谢克努特…这对我很有效,那么我知道为什么没有人问这样的问题了=我能再问一个问题吗?我只是觉得很奇怪,当我第一次点击这个字段的时候,我不能先得到内容,我必须点击两次才能得到内容,比如,我先在字段中输入“1”,当焦点离开字段时,什么也没有发生,然后我再点击字段,然后输入“2”,当我离开字段时,我会得到“1”消息…但我想在离开字段时获取内容,我使用了XSP.partialRefreshPost(“#{id:view:_id1:repeat}”);但是…它不起作用…我错过了什么?请在一个单独的新问题中提出这个问题,并添加相关代码。感谢KnutThank txemanu的回复,但它不起作用…事实上,我曾尝试使用“var index=“#{detailIndex}”;但在我以这种方式编写之后,页面无法打开…不知道问题出在哪里…knut的答案对我来说很有效…无论如何,再次感谢~尝试使用“#{javascript:return detailIndex}”";感谢txemanu的回复,但它不起作用…事实上,我曾尝试使用“var index=“#{detailIndex}”;但在我以这种方式编写之后,页面无法打开…不知道问题出在哪里…克努特的答案对我来说很有效…无论如何,再次感谢~尝试使用“#{javascript:return detailIndex}”;