0

我正在开发一个使用 XForms 标准的搜索应用程序。应用程序搜索一个包含学生数据的小型 xml 文件。我已经使用 XQuery 编写了查询,并且已经尝试过了。查询结果很好,很好。但是当我使用 XForms 将它们与实例和提交连接起来时,表示层(一个 xf:repeat 表,每个原始数据都是一个学生)根本不会更新。我知道查询是有效的。演示文稿很好,但我不确定。我的问题可以请帮助我制作此应用程序的工作副本。

型号如下

        <xf:model>
        <xf:action ev:event="xforms-ready">
            <xf:send submission="load-data"/>
        </xf:action>
        <xf:instance xmlns="" id="studInstance">
            <students>
                <student>
                    <idStudent/>
                    <Name/>
                    <LastName/>
                    <Address/>
                </student>
            </students>
        </xf:instance>
        <xf:instance xmlns="" id="search">
            <parameters>
                <query/>
                <field>Name</field>
            </parameters>
        </xf:instance>
        <xf:submission id="load-data" method="get" serialization="none"               action="modules/load.xql" replace="instance" instance="studInstance">
            <xf:message ev:event="xforms-submit-error" level="ephemeral">Load operation failed </xf:message>
            <xf:message ev:event="xforms-submit-done" level="ephemeral">Load operation Succeeded </xf:message>
        </xf:submission>
        <xf:submission id="search" action="modules/search.xql" method="post" serialization="none" ref="instance('search')" targetref="instance('studInstance')" replace="instance">
            <xf:message ev:event="xforms-submit-error" level="ephemeral">Search operation failed </xf:message>
        </xf:submission>
        </xf:model>

结果将被绑定到此处的重复部分:

        <xf:group>
                <xf:repeat instance="studInstance" nodeset="/students/student">
                    <tr>
                        <td>
                            <xf:output ref="idStudent"/>
                        </td>
                        <td>
                            <xf:output ref="Name"/>
                        </td>
                        <td>
                            <xf:output ref="LastName"/>
                        </td>
                        <td>
                            <xf:output ref="Address"/>
                        </td>
                    </tr>
                </xf:repeat>
            </xf:group>

那么这段代码有什么问题!

4

1 回答 1

0

该属性instance在 xf:repeat 中没有意义。做你想做的事情的正确方法是使用instanceXPath 中的函数:

<xf:repeat nodeset="instance(studInstance)/student">
于 2014-03-26T12:36:16.867 回答