2015-06-30 2 views
0

У меня есть XForm, который содержит ретранслятор для визуализации таблицы. Каждая строка таблицы имеет триггер. Когда триггер активируется я хочу взять значение одной из ячеек в моей таблице, для текущей строки и скопируйте это значение в другой экземплярOrbeon XForms - HowTo: Копировать значение поля ретранслятора через Trigger

<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> 

В этом случае я хочу, чтобы скопировать значение из Поле «Дата» к элементу, связанному с «целевым привязкой» при активации триггера.

В настоящее время (как указано выше) существующее значение (элемент, связанный через «целевое связывание») удаляется, но новое значение (*: DateTime) не копируется.

ответ

0

Теперь разрешено. Проблема заключалась в привязке цели в разделе setvalue. Присутствие этого означало, что вывод искал субнод привязки, называемый 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> 

Смежные вопросы