Altova MobileTogether Designer

Cambiar el contenido de la plantilla dinámicamente

Inicio Anterior Inicio Siguiente

Otra de las ventajas de usar plantillas de control es que se pueden pasar valores de parámetros a la plantilla de control para cambiar su contenido de forma dinámica. En nuestro archivo de ejemplo Cities3-DynamicUpdates.mtd hemos añadido la función de ordenar al ejemplo anterior, Cities3-DynamicUpdates.mtd. Esto permite a los usuarios decidir si quieren ordenar los países o las ciudades que aparecen (imagen siguiente).

 

MTDCTExS3Sim01

 

 

Funcionamiento

Para implementar la función de ordenar hemos seguido estos pasos:

 

Hemos añadido un parámetro \$sort opcional a los dos plantillas de control.

En el diseño de la página de nivel superior hemos añadido un control Casilla a la derecha de cada uno de los controles Marcador de posición (imagen siguiente) y hemos definido el ancho de la columna de la casilla como wrap_content. También hemos configurado la propiedad Visible de cada una de las casillas como corresponde.

En el árbol \$PERSISTENT hemos añadido dos atributos nuevos, SortCountries y SortCities, y hemos definido el valor fijo de cada uno de ellos como 0 (imagen siguiente). Después indicamos que estos dos nodos se deben actualizar con el valor de la casilla correspondiente (esté o no marcada); para ello arrastramos cada uno de esos nodos hasta su casilla correspondiente.

MTDCTExS3SortNodes

Por cada marcador de posición hemos definido que el valor del parámetro \$sort sea las expresiones XPath, respectivamente, if (\$PERSISTENT/Root/@SortCountries=1) then true() else false() y if (\$PERSISTENT/Root/@SortCities=1) then true() else false().

En cada plantilla de control la secuencia que genera las filas o las columnas de tabla que se repiten viene definida por la expresión XPath if (\$sort) then sort(\$values) else \$values. En otras palabras: si el valor del parámetro \$sort es true(), entonces se ordenan los elementos de la secuencia \$values; de lo contrario se usa la secuencia \$values tal y como está (que es el orden del archivo de datos XML CitiesWorldwide.xml).

MTDCTExS3CTVerticalRadioButtons

 

Esto es lo que ocurre:

 

Los valores de los atributos SortCountries y SortCities están definidos con un valor inicial de 0. Los valores de ambos se pueden cambiar marcando (el valor es 1) o desmarcando (valor es 0) sus casillas respectivas.

Los valores de los respectivos nodos atributivos (SortCountries y SortCities) se pasan con dos marcadores de posición al parámetro \$sort de la plantilla de control correspondiente como true() o false().

La expresión XPath que selecciona los elementos de la secuencia \$values, que genera las filas o columnas que se repiten, ordena la secuencia o no en función de si el valor del parámetro \$sort de la plantilla es (true() o false()).

© 2017-2023 Altova GmbH