Observe cómo estas listas están utilizando las variables de petición? Las variables se utilizan para comunicarse Solicitud de ida y vuelta entre el modo de finalización de la etiqueta de los padres y las etiquetas de los niños anidados, que es otra de uso aceptable de ellos. También puede hacer esto utilizando CFASSOCIATE y GetBaseTagData (), pero hacerlo sería más complicado.

un artículo presentado por Greg Hunter


Descargo de responsabilidad:Nuestro sitio web no es responsable por el contenido de este artículo. Webarticles es un recurso de información gratuito.
Importante: Este artículo "Uso de la Alcance de solicitudes", fue traducida por un software automático. Sentimos pena por los errores de ortografía que pueda haber ocurrido. Gracias por su comprensión.

Utilizando el ámbito de Solicitud

Variables dentro de las etiquetas personalizadas existen en su propio espacio variable, y la única manera de compartir los datos de ida y vuelta entre la página de llamada y la etiqueta personalizada es mediante el uso de los atributos y alcances de llamadas. Variables de petición están disponibles para todas las plantillas en una solicitud, incluyendo etiquetas personalizadas, y son la mejor manera de dar a las etiquetas personalizadas de acceso a variables globales, como Request.MainDSN, Request.Username y Request.Password. En general, debería restringir el uso de Solicitud de variables en el ámbito de aplicación de etiquetas personalizadas a las constantes globales tales como estos. Todos los demás datos necesarios para una etiqueta personalizada se debe pasar a la misma a través de atributos. Como funciones puede, etiquetas personalizadas se puede llamar de forma recursiva. Esto es raro, sin embargo, y por lo general en una escala avanzada, debido a la recursividad en las etiquetas personalizadas se utiliza de manera diferente que en las funciones definidas por el usuario. Debido a UDF son más adecuadas para hacer los cálculos, se encuentra la recursividad más numéricos en FDU. Por otra parte, la recursividad en las etiquetas personalizadas es el más adecuado para procedimientos como las estructuras o recursivamente en jerarquías de directorios, donde el objetivo es resultado de la página en lugar de devolver los resultados individuales de cada llamada recursiva. El código muestra una etiqueta personalizada que toma una ruta de directorio y devuelve una lista de todos los archivos y subcarpetas de ese camino. Se utiliza la recursividad para mostrar el contenido de los subdirectorios también.

 Attributes.Directory # # \ 
Attributes.Directory # # \ # # GetFiles.Name
  

La prueba de CFIF para "GetFiles.Name NEQ". "Y GetFiles.Name NEQ ".."" no es necesario en ColdFusion MX, MX, porque ya no devuelve estos valores. Hemos mantenido la prueba en este listado de compatibilidad con ColdFusion 5. ListDir.cfm utiliza CFDIRECTORY para obtener todos los archivos y subcarpetas del directorio de pasar a la etiqueta. A continuación, los bucles en la lista de archivos y directorios y salidas todos los archivos que encuentra. Cada vez que el bucle se encuentra con un directorio, ListDir.cfm llama a sí mismo de forma recursiva, pasando el nombre del nuevo directorio. Llamamos a ListDir.cfm en nuestros sistemas, utilizando el siguiente:

CFABORT se menciona como una manera de detener de inmediato la ejecución de una solicitud. Dentro de una etiqueta personalizada, que rara vez se quiere poner fin a una solicitud en su totalidad, pero usted puede querer poner fin a la ejecución de la etiqueta y volver a la página de llamada. Una llamada a CFEXIT es el siguiente:

Tiene las siguientes tres posibles valores para el método:

ExitTag: reanuda la ejecución después de la etiqueta de cierre.

ExitTemplate: reanuda la ejecución o bien después de la apertura o la etiqueta de cierre, dependiendo de donde se llama.

Loop: Re-ejecuta el cuerpo de la etiqueta personalizada.

ExitTag detiene la etiqueta actual, lo que significa que la ejecución continúa después de la etiqueta de cierre (o la etiqueta de apertura si no tiene etiqueta de cierre). Los códigos de mostrar una etiqueta personalizada y su página de llamada.

 Este es el contenido de etiqueta.  Este es el contenido después de la etiqueta de cierre.
 Este es el contenido de etiqueta de apertura.  Este es el contenido después de la llamada CFEXIT.  Este es el contenido de etiqueta de cierre. 

Correr MyTagCall.cfm produce el siguiente:

Este es el contenido de la etiqueta de apertura. Este es el contenido después de la etiqueta de cierre.

Llamadas CFEXIT inmediatamente salta más allá de la etiqueta de cierre, de modo ColdFusion omite toda la producción adicional en la etiqueta y llamando a la página. ExitTemplate es similar a ExitTag, de hecho, es diferente si lo llaman en el modo de comienzo. En lugar de salir de la etiqueta, ExitTag salta más allá del final de la plantilla actual, es decir, llamando ExitTemplate en el modo de inicio de inmediato comienza a ejecutar el cuerpo de etiqueta. Por otra parte, ExitTemplate de llamada en el modo de poner fin de inmediato ponga fin a la etiqueta personalizada.

 Este es el contenido de etiqueta de apertura.  Este es el contenido después de la llamada CFEXIT.  Este es el contenido de etiqueta de cierre. 

Llamando al código de muestra ahora el resultado siguiente:

Este es el contenido de la etiqueta de apertura. Este es el contenido de etiqueta. Este es el contenido de la etiqueta de cierre. Este es el contenido después de la etiqueta de cierre.

ExitTemplate salta el final de el modo de inicio, pero continúa la ejecución al comienzo del cuerpo. "Loop" es muy diferente de ExitTag y ExitTemplate porque bucle se ejecuta el código que ya correr. En lugar de saltar pasado parte de la etiqueta, re-Loop ejecuta el cuerpo de la etiqueta personalizada. Como tal, sólo se puede llamar en el modo de final de la etiqueta personalizada. Loop se utiliza mucha menos frecuencia que ExitTag o ExitTemplate y se utiliza casi exclusivamente con etiquetas anidadas. Los cambios en estas dos etiquetas requieren un cambio en la arquitectura de la etiqueta. En los códigos, OutputTable.cfm hizo la mayor parte de la obra, y OutputColumn.cfm acaba de definir las columnas para seleccionar de la base de datos y salida de la cabecera de la lista. Las modificaciones que usted va a hacer en las listas siguientes hacen OutputTable.cfm obtener los datos de la base de datos, pero el trabajo de emisión de los datos en su mayoría cae en OutputColumn.cfm, que es una mejor división del trabajo. Los códigos de mostrar los modificaciones a OutputTable.cfm y OutputColumn.cfm.

 SELECCIONAR  # ThisTag.AssocAttribs [i]. ColumnName #  , 
DE Attributes.TableName # # 
# # Attributes.Label # Request.GetData [Attributes.ColumnName] [Request.RowNumber] #

Online: 485 users browsing the articles directory