Login  Register

how to get the correct item in the model, after sorting in a repeat

Posted by Myxlyxl on Jun 03, 2009; 9:20am
URL: https://discuss.orbeon.com/how-to-get-the-correct-item-in-the-model-after-sorting-in-a-repeat-tp43833.html

Hello,

my problem:

I use exf:sort to sort a repeat:

<xforms:repeat nodeset="exf:sort(instance('main-instance')/Calls/Call/Servicerufnummern/SRN,'@ID','text')" id="N10028-repeat">

</xforms:repeat>

somewhere later (not in the above repeat) I have a trigger to delete an element from the repeat:

<xforms:trigger appearance="minimal">
<xforms:action ev:event="DOMActivate">
<xforms:delete at="index('N10028-repeat')" ev:event="DOMActivate" context="instance('main-instance')/Calls/Call/Servicerufnummern" nodeset="SRN" />
 </xforms:action>
<xforms:label>
 -
        SRN
</xforms:label>
</xforms:trigger>

The problem is, that index('N10028-repeat') doesnt provide the correct index. It gives me the correct index of the selected item, but this is not the same as in the model because of the sort. Without sorting everything works perfect.

I also tried something like: count(instance('main-instance')/Calls/Call/Servicerufnummern/SRN[index('N10028-repeat')]/preceding-sibling::SRN)+1] , no luck either.

Perhaps somebody has an idea how to get the correct index ?

Thanks a lot
Michael