【问题标题】:How to bind output value into model如何将输出值绑定到模型中
【发布时间】:2014-05-14 11:45:17
【问题描述】:

我已将此绑定到输出字段:

 <xf:bind id="fr-form-binds" ref="instance('fr-form-instance')">
        <xf:bind id="Pokoj-bind" ref="dok:Pokoj" name="Pokoj" />
    </xf:bind>
     <xh:body>
    <xh:td>
      <xf:output id="Pokoj-control" value="concat('Pokój ',xxf:repeat-position())"
                                               bind="Pokoj-bind">
         <xf:label ref="$form-resources/Pokoj/label"/>
         <xf:hint ref="$form-resources/Pokoj/hint"/>
         <xf:alert ref="$fr-resources/detail/labels/alert"/>
      </xf:output>
    </xh:td>
   </xh:body>

但是输出的值它没有保存到模型中,如果能提供任何帮助,如何将它的值绑定到模型中,我将不胜感激。

【问题讨论】:

    标签: xml output orbeon xforms


    【解决方案1】:

    xf:input 不同,xf:input 也可以将值“写入”到其绑定节点,例如当用户更改输入字段中的值时,xf:output 只是从其绑定节点读取一个值,或者显示一个即将到来的值来自value="..." 属性,就像您在此处所做的那样。但是,除了value="..." 之外,您在xf:output 上还有一个bind="..." 并不能让xf:output 将该值写入绑定节点。

    通常,您可以通过将xf:output value="..." 上的表达式移动到xf:bind calculate="..." 来实现。在您的情况下,您不能完全这样做,因为xxf:repeat-position() 在模型中不起作用。所以你很可能需要写calculate="concat('Pokój ',count(preceding-sibling::dok:Pokoj))"之类的东西。

    【讨论】:

    • 谢谢,但我还有一个问题,好的,现在字段的值在模型中,但所有字段的值都为“Pokój 0”,如果您能提供任何帮助,我将不胜感激。跨度>
    • 对,我的错:因为你有一个重复,dok:Pokoj 在一个重复的元素内。通常,这是网格的名称。您可以通过检查表单的来源找到名称。假设是container,那么表达式就是../count(preceding-sibling::container))
    猜你喜欢
    • 2023-03-13
    • 1970-01-01
    • 2017-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多