跳转到内容

XForms/从模型中选择

来自维基教科书,开放的书籍,开放的世界

您希望将列表存储在模型中,而不是用户界面中。这允许列表在表单中的许多地方使用,并使列表能够从外部文件读取(请参阅下一个示例)。

屏幕图像

[编辑 | 编辑源代码]

执行示例 XForms 应用程序

[编辑 | 编辑源代码]

加载 XForms 应用程序

示例程序

[编辑 | 编辑源代码]

此示例演示如何使用 XForms 的 itemset 元素直接从模型中获取选择列表中的数据。请注意,itemset 在语法上与 group 命令非常相似:外循环告诉您从哪里获取数据,内循环将数据元素绑定到表单值或项目。

<html xmlns="http://www.w3.org/1999/xhtml" 
   xmlns:xf="http://www.w3.org/2002/xforms">
    <head>
        <title>Getting Selection List Data From the XForms Model</title>
        <style type="text/css"><![CDATA[
            body {font-family: Helvetica, Verdanan, sans-serif;}
        ]]>
        </style>
        <xf:model>

            <!-- this instance holds the data you send to the server on save -->
            <xf:instance id="my-item" xmlns="">
                <data>
                    <!-- the default color is red -->
                    <ItemColorCode>red</ItemColorCode>
                </data>
            </xf:instance>

            <!-- this instance holds the code tables used for all selection lists -->
            <xf:instance id="code-tables" xmlns="">
                <code-tables>
                    <code-table>
                        <code-table-id>ItemColorCode</code-table-id>
                        <item>
                            <label>Red</label>
                            <value>red</value>
                        </item>
                        <item>
                            <label>Orange</label>
                            <value>orange</value>
                        </item>
                        <item>
                            <label>Yellow</label>
                            <value>yellow</value>
                        </item>
                        <item>
                            <label>Green</label>
                            <value>green</value>
                        </item>
                        <item>
                            <label>Blue</label>
                            <value>blue</value>
                        </item>
                    </code-table>
                </code-tables>
            </xf:instance>
        </xf:model>
    </head>
    <body>
        <h1>Getting Selection List Data From the XForms Model</h1>
        <xf:select ref="ItemColorCode" appearance="full">
            <xf:itemset
                nodeset="instance('code-tables')/code-table[code-table-id='ItemColorCode']/item">
                <xf:label ref="label"/>
                <xf:value ref="value"/>
            </xf:itemset>
        </xf:select>
        <br/> Output: <xf:output ref="ItemColorCode"/>
    </body>
</html>

这是一种管理列表更灵活的方法。实例文档可以从远程数据库动态获取,当列表更改时,表单不需要更新。


下一页: 从文件中选择 | 上一页: Select1 多列
主页: XForms
华夏公益教科书