Tipos de columnas de cuadrícula Angular

    Ignite UI for Angular Grid proporciona un manejo predeterminado de los tipos de datos de columna número, cadena, fecha, booleano, moneda y porcentaje, según el cual estará presente la apariencia de las plantillas predeterminadas y de edición.

    Angular Column Types Example

    Plantilla predeterminada

    Si desea habilitar una plantilla específica del tipo de datos, debe configurar la entrada dataType de la columna; de lo contrario, la columna se tratará como una columna de cadena, ya que ese es el valor predeterminado para el tipo de datos de la columna. Veamos cuáles son las plantillas predeterminadas para cada tipo.

    String

    dataType de esta columna no cambia la apariencia ni el formato del valor de la celda.

    Number

    Si el dataType se establece en número, el valor de la celda se formateará según la configuración locale de la aplicación o la cuadrícula, así como cuando se especifique la propiedad pipeArgs. Luego, el formato del número se cambiará según ellos, por ejemplo, podría cambiar:

    • Número de dígitos después del punto decimal
    • Separador decimal con, o.
    public options = {
      digitsInfo: '1.4-4',
    };
    public formatOptions = this.options;
    
    <igx-column [pipeArgs]="formatOptions" [dataType]="'number'">
    </igx-column>
    

    DateTime, Date and Time

    La apariencia de las partes de fecha se establecerá (por ejemplo, día, mes, año) según el formato locale o la entrada pipeArgs. Los argumentos de canalización se pueden utilizar para especificar un formato de fecha personalizado o una zona horaria:

    • formato: el valor predeterminado para formatear la fecha es 'mediumDate'. Otras opciones disponibles son "corta", "larga", "fecha corta", "fecha completa", "tiempo largo", "tiempo completo", etc. Esta es una lista completa de todas las opciones de formato predefinidas disponibles.
    • zona horaria: la zona horaria del sistema local del usuario es el valor predeterminado. También se puede pasar el desplazamiento de la zona horaria o la abreviatura estándar GMT/UTC o de la zona horaria continental de EE. UU. Diferentes ejemplos de zonas horarias que mostrarán la hora correspondiente de la ubicación en cualquier parte del mundo:
    public formatDateOptions = {
        /** The date/time components that a date column will display, using predefined options or a custom format string. */
        /** e.g 'dd/mm/yyyy' or 'shortDate' **/
        format: 'longDate',
        /** A timezone offset (such as '+0430'), or a standard UTC/GMT or continental US timezone abbreviation. */
        timezone: 'GMT'
    };
    public formatOptions = this.options;
    
    <igx-column [pipeArgs]="formatDateOptions" [dataType]="'date'">
    </igx-column>
    

    Zonas horarias disponibles:

    Zona horaria Valor
    Zona horaria alfa 'UTC+1'
    Hora central de Australia 'UTC+9:30/+10:30'
    Hora estándar de Arabia 'UTC+3'
    Hora estándar central 'UTC-6'
    Hora estándar de China 'UTC+8'
    Zona horaria delta 'UTC+4'
    Meridiano de Greenwich 'UTC+0'
    Hora estándar del Golfo 'UTC+4'
    Hora estándar de Hawái 'UTC-10'
    Hora estándar de la India 'UTC+4'

    La cuadrícula acepta valores de fecha de tipo Objeto de fecha, Número (milisegundos), Una cadena de fecha y hora ISO. Esta sección muestra cómo configurar un formato de visualización personalizado.

    Como puede ver en el ejemplo, especificamos diferentes opciones de formato para mostrar los formatos disponibles para el tipo de columna específico. Por ejemplo, a continuación puede encontrar las opciones de formato para la parte de hora del objeto de fecha:

    // Time format with equivalent example
    public timeFormats = [
        { format: 'shortTime', eq: 'h:mm a' },
        { format: 'mediumTime', eq: 'h:mm:ss a' },
        { format: 'longTime', eq: 'h:mm:ss a z' },
        { format: 'fullTime', eq: 'h:mm:ss a zzzz' },
    ];
    

    Edición de celdas

    Cuando se trata de editar celdas según el tipo de columna, aparecerá un editor diferente:

    Filtración

    Se utilizarán los mismos editores enumerados anteriormente cuando se trata de filtrado rápido/filtrado estilo Excel. Estos son los siguientes operandos de filtrado que expone cada tipo:

    • fecha, hora y fecha: igual, no es igual, antes, después, hoy, ayer, este mes, el mes pasado, el mes siguiente, este año, el año pasado, el año siguiente, vacío, no vacío, nulo, no nulo;
    • tiempo: en, no en, antes, después, en o antes, en o después, vacío, no vacío, nulo, no nulo;

    resúmenes

    Los operandos de resumen disponibles serán Count, Early (fecha/hora) y Latest (fecha/hora).

    Clasificación

    La columna de tipo de tiempo se clasifica según la porción de tiempo del objeto; se ignorarán los ms. La columna de tipo de fecha se ordena según la parte de la fecha, ignora la parte de la hora. La columna DateTime se ordena según la fecha completa

    Boolean

    La plantilla predeterminada utiliza íconos de materiales para la visualización de valores booleanos: ícono 'borrar' para valores falsos e ícono 'verificar' para valores verdaderos. En cuanto a la plantilla de edición, utiliza el componente igx-checkbox.

    <igx-column [dataType]="'boolean'">
    </igx-column>
    

    Currency

    Plantilla predeterminada

    La plantilla predeterminada mostrará un valor numérico con un símbolo de moneda que tendrá un prefijo o un sufijo. Tanto la ubicación del símbolo de moneda como el formato del valor numérico se basan en la locale de la aplicación LOCALE_ID o Grid proporcionada.

    Usando LOCALE_ID

    import { LOCALE_ID } from '@angular/core';
    ...
    
     @Component({
        selector: 'app-component.sample',
        templateUrl: 'grid-component.sample.html',
        providers: [{provide: LOCALE_ID, useValue: 'fr-FR' }]
    })
    

    Usando la configuración regional de Grid

    <igx-grid [locale]="'fr-FR'" [data]="data">
    </igx-grid>
    

    Al utilizar la entrada pipeArgs, el usuario final puede personalizar el formato del número mediante punto decimal, código de moneda y visualización.

    public options = {
      digitsInfo: '3.4-4',
      currencyCode: 'USD',
      display: 'symbol-narrow'
    };
    public formatOptions = this.options;
    
    <igx-column field="UnitsInStock"
        [pipeArgs]="formatOptions"
        [dataType]="'currency'">
    </igx-column>
    
    Parámetro Descripción
    dígitosInfo Representa la representación decimal del valor de la moneda.
    código de moneda Código de moneda ISO 4217
    mostrar* Muestra el valor mediante símbolo estrecho o ancho.

    *display: para la configuración regional predeterminada en EE. UU., el código USD se puede representar mediante el símbolo estrecho $ o el símbolo ancho US$.

    Al editar el valor de la celda, el símbolo de moneda será visible como sufijo o prefijo. Se puede encontrar más información sobre esto en el tema oficial de edición de Cell.

    Note

    Cuando se utilizan las teclas de flecha arriba/abajo, el valor aumentará/disminuirá con un paso basado en digitsInfo - minFractionDigits (el número mínimo de dígitos después del punto decimal. El valor predeterminado es 0)

    Percent

    La plantilla predeterminada muestra el porcentaje equivalente del valor numérico subyacente. El valor de la celda mostrada es un resultado multiplicado por el factor de visualización de '100'; por ejemplo, como el factor predeterminado es 100 y el "valor" pasado a la celda es 0,123, el valor de la celda mostrada será "12,3%".

    Cuando se trata de edición de celdas, el valor será el mismo que el valor de la fuente de datos: el factor de visualización es '1'. Al editar la celda, se mostrará una vista previa del valor porcentual como elemento sufijo. Por ejemplo, al editar '0,0547', el elemento de vista previa mostrará '5,47%'.

    public options = {
        /**
        * Decimal representation options, specified by a string in the following format:
        * `{minIntegerDigits}`.`{minFractionDigits}`-`{maxFractionDigits}`.
        * `minIntegerDigits`: The minimum number of integer digits before the decimal point. Default is 1.
        * `minFractionDigits`: The minimum number of digits after the decimal point. Default is 0.
        * `maxFractionDigits`: The maximum number of digits after the decimal point. Default is 3.
        */
        digitsInfo: '2.2-3'
    };
    public formatPercentOptions = this.options;
    
    <igx-column field="UnitsInStock"
        [pipeArgs]="formatPercentOptions"
        [dataType]="'percent'">
    </igx-column>
    
    Note

    Cuando se utilizan las teclas de flecha arriba/abajo, el valor aumentará/disminuirá con un paso basado en digitsInfo - minFractionDigits (el número mínimo de dígitos después del punto decimal. El valor predeterminado es 0)

    Image

    La plantilla predeterminada utiliza el valor proveniente de los datos como fuente de imagen para una plantilla de imagen predeterminada. La plantilla de imagen predeterminada extraerá el nombre del archivo de imagen y lo establecerá como atributo alt de la imagen para cumplir con el requisito de accesibilidad. El tamaño de celda mostrado se ajusta a los tamaños de las imágenes representadas, así que tenga en cuenta que las imágenes grandes se seguirán representando y las filas de la cuadrícula serán tan grandes como las imágenes en la columna de imágenes. El filtrado, la clasificación y la agrupación estarán desactivados de forma predeterminada para las columnas de tipo de imagen. Si desea habilitarlos, debe proporcionar estrategias personalizadas que realicen las operaciones de datos.

    <igx-column [dataType]="'image'">
    </igx-column>
    

    Al generar columnas automáticamente, la cuadrícula analiza los valores en el primer registro de datos. Si un valor es de tipo cadena y coincide con el patrón de una URL que termina en una extensión de imagen (gif, jpg, jpeg, tiff, png, webp, bmp), entonces la columna se marcará automáticamente como dataType === GridColumnDataType.Image y Se representará una plantilla de imagen predeterminada.

    Default editing template

    Vea la parte de plantillas de edición del tema Edición de cuadrículas.

    Custom editing template and formatter

    La plantilla personalizada y la definición del formateador de columnas siempre tendrán prioridad sobre el conjunto de tipos de datos de la columna:

    Custom template

    <igx-grid #grid1 [data]="data | async" [autoGenerate]="false">
        <igx-column [field]="'UnitsInStock'" [dataType]="'currency'" [pipeArgs]="formatOptions" [editable]="true">
            <ng-template igxCellEditor let-value>
                {{ value | currency:'USD':'symbol':'1.0-0'}}
            </ng-template>
        </igx-column>
    </igx-grid>
    

    Column formatter

     // Through column formatter property
    public formatCurrency(value: number) {
        return `Dollar sign ${value.toFixed(0)}`;
    }
    
    public init(column: IgxColumnComponent) {
        switch (column.field) {
            case 'UnitsInStock':
                column.formatter = this.formatCurrency;
                break;
            default:
                return;
    }
    

    API References

    Additional Resources