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