我有一个XForm,它包含一个用于渲染表的转发器。表的每一行都有一个触发器。当触发器被激活时,我想获取当前行中我的表中一个单元格的值,并将该值复制到另一个实例
<xh:table class="dataTable">
<xh:tr>
<xh:th>Date</xh:th>
<xh:th>Copy?</xh:th>
</xh:tr>
<xf:repeat nodeset="instance('fr-form-instance')/Pathology/*:TimeSeriesStructure[*:Type/*:TypeId='ALB']/*:DataPoint">
<xh:tr>
<xh:td>
<xf:output ref="*:DateTime"/>
</xh:td>
<xh:td>
<xf:trigger xxf:modal="true">
<xf:label>Select</xf:label>
<xf:action ev:event="DOMActivate">
<xf:setvalue bind="target-bind">
<xf:output ref="*:DateTime"/>
</xf:setvalue>
</xf:action>
</xf:trigger>
</xh:td>
</xh:tr>
</xf:repeat>
</xh:table>
在这种情况下,我想将Date字段的值复制到由&#34; target-bind&#34;绑定的项目。当触发器被激活时。
目前(如上所述),现有值(通过&#34; target-bind&#34;绑定的元素)被删除,但新值(*:DateTime)不会被复制。
答案 0 :(得分:0)
现在已经解决了。问题是setvalue部分中的target-bind。这意味着输出正在寻找名为DateTime的绑定的子节点。何时应该查看转发器正在渲染的节点。将它移到变量并以这种方式访问它解决了问题
<xh:table class="dataTable">
<xh:tr>
<xh:th>Date</xh:th>
<xh:th>Copy?</xh:th>
</xh:tr>
<xf:repeat nodeset="instance('fr-form-instance')/Pathology/*:TimeSeriesStructure[*:Type/*:TypeId='ALB']/*:DataPoint">
<xf:var name="itemVal" value="*:DateTime"/>
<xh:tr>
<xh:td>
<xf:output value="$itemVal"/>
</xh:td>
<xh:td>
<xf:trigger xxf:modal="true">
<xf:label>Select</xf:label>
<xf:action ev:event="DOMActivate">
<xf:setvalue bind="target-bind" value="$itemVal" />
</xf:action>
</xf:trigger>
</xh:td>
</xh:tr>