Diferencia entre revisiones de «XForms/Listas de Selección a partir de archivos»

Contenido eliminado Contenido añadido
Aruedadu (discusión | contribs.)
Aruedadu (discusión | contribs.)
Línea 231:
== Listas de seleccion a partir de una sola instancia ==
para mantener los formulario rapidos, usualmente es mejor hacer una sola operacion HTTP GET para todos los datos. Los formularios que tienen varias listas de seleccion, tomaran mas tiempo para cargar si cada una de las listas realiza una operacion HTTP GET. Para grandes formularios es facil obtener una mejora de velocidad de 10x en tiempos de cargado.
 
=== Estructura de instacia de tablas de datos ===
El siguiente es un ejemplo de la estructura de todos los datos cargados en una sola instancia
<big>
<source lang="xml">
<xf:instance id="code-tables">
<code-tables>
<code-table>
<code-table-name>MyElementCode</code-table-name>
<items>
<item>
<label>Joe Smith</label>
<value>42</value>
</item>
<item>
<label>Sue Johnson</label>
<value>47</value>
</item>
<items>
</code-table>
<code-table>
<code-table-name>ColorCode</code-table-name>
<items>
<item>
<label>Red</label>
<value>1</value>
</item>
<item>
<label>Orange</label>
<value>2</value>
</item>
<items>
</code-table>
</code-tables>
</xf:instance>
</source>
</big>
 
=== Ejemplo Select1 ===
una vez los datos estan cargados en el modelo, cada uno de los controles de select pueden obtener sus datos directamente desde el modelo usando el elemento <xf:itemset>. Itemset trabaja igual que Repeat y usa nodeset (no usa ref) para obtener todos sus valores. Aca hay un ejemplo de como obtener el conjunto de datos desde la instancia de tabla de datos.
<big>
<source lang="xml">
<xf:select1 ref="instance('save-data')/MyElementName">
<xf:label>My Element:</xf:label>
<xf:itemset nodeset="instance('code-tables')/code-table[code-table-name='MyElementCode']/items/item">
<xf:label ref="label"/>
<xf:value ref="value"/>
</xf:itemset>
</xf:select1>
</source>
</big>
Notese que el predicado [code-table-name='MyElementCode'] pondra unicamente los elementos para ese codigo en la lista de seleccion.