xforms并从列表中获取特定值

时间:2013-09-11 09:39:07

标签: xforms

有一个小代码适用于appache tomcat和chiba-3.0.0b2

<?xml version="1.0" encoding="UTF-8"?>
<xhtml:html xmlns:xhtml="http://www.w3.org/1999/xhtml"
    xmlns:xforms="http://www.w3.org/2002/xforms"
    xmlns:events="http://www.w3.org/2001/xml-events">
<xhtml:head>
    <xforms:model>

有实例可以获取动态列表

        <xforms:instance id="xs">
            <xs>
                <x kd="1" name="one"></x>
                <x kd="2" name="two"></x>
                <x kd="3" name="three"></x>
                <!-- ... -->
            </xs>
        </xforms:instance>
    </xforms:model>
</xhtml:head>
<xhtml:body>

有一个开关箱结构

<xforms:switch>

列出案例

<xforms:case id="list">
    <xhtml:ul>
        <xforms:itemset nodeset="instance('xs')/x">
            <xhtml:li>
                <xforms:trigger>
                    <xforms:toggle events:event="DOMActivate" case="onerec" />
                    <xforms:value ref="@kd" />
                    <xforms:label ref="@name" />
                </xforms:trigger>
            </xhtml:li>
        </xforms:itemset>
    </xhtml:ul>
</xforms:case>

一个记录案例

<xforms:case id="onerec">

如何在公式[@ kd = 2]中获得最后提交的按钮值而不是'2'(即代替[@ kd = 2]我喜欢@ kd ='点击触发值')???

    <xforms:itemset nodeset="instance('xs')/x[@kd=2]">
        There are name "<xforms:label ref="@name" />" and id "<xforms:value ref="@kd" />"
    </xforms:itemset>

有一个后退按钮

    <xforms:trigger>

打开列表案例

                <xforms:toggle events:event="DOMActivate" case="list" />
                <xforms:label>Back</xforms:label>
            </xforms:trigger>
        </xforms:case>
    </xforms:switch>
</xhtml:body>
</xhtml:html>

谢谢

1 个答案:

答案 0 :(得分:1)

您可以拥有一个实例来存储实际点击的触发器的索引,例如

<xforms:instance id="navigation">
          <data>
            <actual>1</actual>
          </data>
</xforms:instance>

然后使用set-value操作单击触发器设置此索引:

 <xforms:trigger>
    <xf:action ev:event="DOMActivate">                   
        <xforms:toggle case="onerec" />
        <xf:setvalue ref="instance('navigation')/actual" value="@kd"/>
    </xforms:action>

    <xforms:value ref="@kd" />
    <xforms:label ref="@name" />
 </xforms:trigger>

然后,要了解活动案例,请使用instance('navigation')/actual