Página inicial

Unidad 23. AJAX y Spry Framework (VI)


Condicionales

 

Es posible crear condiciones dentro de las áreas de repetición para decidir si los elementos se deberán mostrar o no.

Para ello nos podremos valer de diferentes métodos.

 

El primero que veremos será el atributo spry:test, que debe colocarse junto a un spry:repeat (o spry:repeatchildren)

Este atributo nos permite crear una condición junto a la repetición que evaluará cada fila y la mostrará si cumple la condición.

Por ejemplo:

<div spry:region="miDataSet">

<ul spry:repeatchildren="miDataSet" spry:test="{ds_RowID} <= 5;">

<li>{@id}, {propiedad}</li>

</ul>

</div>

Esta condición hará que la repetición se produzca mostrando los 6 primeros elementos (recuerda que el conteo empieza en 0, por lo que el sexto elemento tendrá una ID de 5).

 

Otra forma de crear condiciones es utilizando las expresiones regulares que vimos en el tema 12.

De esta forma podemos crear condiciones que evalúen el contenido de algún campo:

<ul spry:repeatchildren="miDataSet" spry:test="'{propiedad}'.search(/^An/) != -1;">

De esta forma mostaremos sólo aquellos registros cuyo campo propiedad empiece por An. != es el operador lógico que indica distinto.

Si quisiesemos aquellos que no empiezan por An deberíamos escribir:

<ul spry:repeatchildren="miDataSet" spry:test="'{propiedad}'.search(/^An/) == -1;">.

== es el operador lógico que indica igual.

 

E incluso podríamos igualar un campo para mostrar sólo aquél que tenga determinado valor:

<ul spry:repeatchildren="miDataSet" spry:test="'{propiedad}' == 'valor';">

 

 

Luego podemos encontrar otros elementos de condición más complejos y flexibles.

Estos no necesitan estar al lado de un spry:repeat, pero sí dentro de una etiqueta afectada por él.

 

Podemos utilizar spry:if para decidir mostrar algo o no.

Podríamos reescribir el ejemplo anterior de esta forma:

<div spry:region="miDataSet">

<ul spry:repeatchildren="miDataSet">

<li spry:if="{ds_RowID} <= 5;">{@id}, {propiedad}</li>

</ul>

</div>

 

De esta forma podemos decidir ya no sólo si mostrar registros o no, sino también ocultar algunas etiquetas.

Bastará con que pongas el atributo dentro de una etiqueta concreta y se evaluará para cada registro si mostrarla o no (y con ella todo su contenido).

 

Otro elemento condicional que podremos utilizar, aún más completo es spry:choose.

Este condicional te permite evaluar diferentes casos y para cada uno tomar diferentes decisiones.

Por ejemplo:

<div spry:region="miDataSet">

<ul spry:repeatchildren="miDataSet">

<div spry:choose="spry:choose">

<li spry:when="{ds_RowID} <= 5;" class="estilo1">{@id}, {propiedad}</li>

<li spry:when="{ds_RowID} > 5;" class="estilo2">{@id}, {propiedad}</li>

</div>

</ul>

</div>

Aquí creamos una región spry:choose y dentro de ella diferentes casos en los que se evaluarán las condiciones y se mostrará aquella que se cumpla en primer lugar.

En este ejemplo, los 6 primeros registros se listarán con clase estilo1 y el resto con estilo2.

Podríamos haber añadido una tercera condición como esta:

<li spry:default="spry:default" class="estilo3">{@id}, {propiedad}</li>

Que actuará cuando ninguna de las condiciones anteriores se cumplan.

 




  Ir a la página anterior Índice del curso  Ir a la siguiente página  

Pág. 23.6

© aulaClic. Todos los derechos reservados. Free Computer tutorials. Prohibida la reproducción por cualquier medio.
Agosto - 2006.