Re: Re: how to get the correct item in the model, after sorting in a repeat
Posted by
Erik Bruchez on
Jan 28, 2011; 1:21am
URL: https://discuss.orbeon.com/how-to-get-the-correct-item-in-the-model-after-sorting-in-a-repeat-tp43833p3243567.html
You don't really explain your issue.
The repeat index is a user-facing notion. So it will be the index after sorting. E.g. 3 items:
<foo>a</foo>
<foo>b</foo>
<foo>c</foo>
sorted in descending order will show in the UI:
c
b
a
If the first row is selected by the user, the index is 1, not 3.
If you need to know the position of a given element in the instance, you can always count elements, e.g.:
count(preceding-sibling::foo) + 1
-Erik
On Tue, Jan 25, 2011 at 8:48 PM, lakshmipmandava
<[hidden email]> wrote:
Similar way i am trying to implementing for edit feature and not working.Not
able to get correct index after sorting using xxforms:sort or exsort
suggest how do i go about to fix issue
<xhtml:table width="99%">
<xhtml:tr>
<th width="10%"
class="datatable_th_xforms">Date</th>
<th width="12%"
class="datatable_th_xforms">Doctor Name</th>
<th width="17%"
class="datatable_th_xforms">Complaint</th>
<th width="30%"
class="datatable_th_xforms">Prescribed Medicines<br/>
(Name|Dosage|days)</th>
<th width="20%"
class="datatable_th_xforms">Prescribed Tests</th>
<th width="15%"
class="datatable_th_xforms">Action</th>
</xhtml:tr>
<xxforms:variable name="sorted-nodeset"
select="exf:sort(instance('clinicalExamniationInstance')/consls/consl,'ConslDate','text')"/>
<xforms:repeat id="consultation" model="clinicalExaminationModel"
nodeset="$sorted-nodeset">
<tr>
<td width="10%"
class="datatable_td_xforms">
<xforms:output model="clinicalExaminationModel"
ref="ConslDate"/></td>
<td width="12%"
class="datatable_td_xforms"><xforms:output model="clinicalExaminationModel"
ref="Doc" /></td>
<td width="17%"
class="datatable_td_xforms">
<xforms:output
model="clinicalExaminationModel" ref="HP" class="item-amount" />
</td>
<td width="30%"
class="datatable_td_xforms">
<table width="100%">
<xforms:repeat model="clinicalExaminationModel"
nodeset="Medicines/Medicine">
<tr>
<td width="50%">
<xforms:output model="clinicalExaminationModel" ref="Name"
class="item-amount" />
</td>
<td width="20%">
<xforms:output model="clinicalExaminationModel" ref="Dosage"
class="item-amount" />
</td>
<td width="20%">
<xforms:output model="clinicalExaminationModel" ref="Duration"
class="item-amount" />
</td>
</tr>
</xforms:repeat>
</table>
</td>
<td width="20%"
class="datatable_td_xforms">
<xforms:repeat
model="clinicalExaminationModel" nodeset="Tests/test">
<table width="100%">
<tr>
<td>
<xforms:output model="clinicalExaminationModel" ref="@name"
class="item-amount" />
</td>
</tr>
</table>
</xforms:repeat>
</td>
<td width="15%"
class="datatable_td_xforms">
<xforms:trigger
appearance="minimal">
<xforms:label><xhtml:img
src="/media/icons/document_edit.png" width="20px" alt="Edit" title="Edit
Consultation"/></xforms:label>
<xforms:toggle
case="c022" ev:event="DOMActivate" />
<xforms:action
ev:event="DOMActivate">
<xforms:setvalue
ref="/lists/list[index('list')]/todo[index('todo')]/@ui:mode"
value="'edit'"/>
<xforms:setvalue
ref="instance('consl-num')/consl" value="index('consultation')" />
<xforms:setvalue
ref="instance('consultation-index')/@val" value="index('consultation')" />
<xforms:toggle
case="case-3" />
</xforms:action>
</xforms:trigger>
<xforms:trigger
appearance="minimal">
<xforms:label><xhtml:img
src="/media/img/lab.png" width="18px" alt="Test Results" title="Test
Results"/></xforms:label>
<xforms:action ev:event="DOMActivate">
<xforms:setvalue ref="instance('consl-num')/consl"
value="index('consultation')"/>
<xforms:setvalue ref="instance('url-container1')"
value="concat('/${pageContext.request.contextPath}/strts/crmsPage?department=rheumatology&pageName=lab.jsp&cardId=<%=
request.getParameter("cardId") %>', instance('user-name'))"/>
<xforms:setvalue ref="instance('url-container1')"
value="concat(instance('url-container1'), '&conslDate=')"/>
<xforms:setvalue ref="instance('url-container1')"
value="concat(instance('url-container1'),
instance('clinicalExamniationInstance')/consls/consl[number(instance('consl-num')/consl)]/ConslDate)"/>
<xforms:load ref="instance('url-container1')" show="replace"
ev:event="DOMActivate"/>
</xforms:action>
</xforms:trigger>
<!-- <xforms:trigger
appearance="minimal">
<xforms:label>FollowUps</xforms:label>
<xforms:toggle
case="c022" ev:event="DOMActivate" />
<xforms:action
ev:event="DOMActivate">
<xforms:setvalue
ref="instance('consl-num')/consl" value="index('consultation')" />
<xforms:setvalue
ref="instance('url-container1')" value="concat('?q=followup_details/',
instance('user-name'))" />
<xforms:setvalue
ref="instance('url-container1')" value="concat(instance('url-container1'),
'/')" />
<xforms:setvalue
ref="instance('url-container1')" value="concat(instance('url-container1'),
instance('clinicalExamniationInstance')/consls/consl[number(instance('consl-num')/consl)]/ConslDate)"
/>
<xforms:send
submission="s111"/>
</xforms:action>
</xforms:trigger>-->
<xforms:setvalue ref="@modified"
value="seconds-from-dateTime(now())" ev:event="xforms-value-changed" />
</td>
</tr>
</xforms:repeat>
</xhtml:table>
--
View this message in context: http://orbeon-forms-ops-users.24843.n4.nabble.com/how-to-get-the-correct-item-in-the-model-after-sorting-in-a-repeat-tp43833p3237457.html
Sent from the Orbeon Forms (ops-users) mailing list archive at Nabble.com.
--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
OW2 mailing lists service home page: http://www.ow2.org/wws
--
You receive this message as a subscriber of the
[hidden email] mailing list.
To unsubscribe: mailto:
[hidden email]
For general help: mailto:
[hidden email]?subject=help
OW2 mailing lists service home page:
http://www.ow2.org/wws