Web Components Tamaño de la cuadrícula del árbol

    The Ignite UI for Web Components Size feature in Web Components Tree Grid allows users to control the spacing and layout of data within the IgcTreeGridComponent. By changing --ig-size, you can significantly improve the user experience when interacting with large amounts of content. They can choose from three size options:

    • --ig-size-large
    • --ig-size-medium
    • --ig-size-small

    Web Components Tree Grid Size Example

    Usage

    Como puedes ver en la demo anterior, ofreceIgcTreeGridComponent tres opciones de tamaño: pequeño, mediano y grande. El fragmento de código a continuación muestra cómo establecer--ig-size una clase en línea o parte de una clase CSS:

    .gridSize {
        --ig-size: var(--ig-size-medium);
    }
    
    <igc-tree-grid id="grid" class="gridSize">
    </igc-tree-grid>
    

    Y ahora veamos en detalle cómo cada opción refleja elIgcTreeGridComponent componente. Cuando cambias entre diferentes opciones de tamaño, la altura de cadaIgcTreeGridComponent elemento y los rellenos correspondientes se modifican. Además, si quieres aplicar columnaswidth personalizadas, por favor considera que debe ser mayor que la suma del relleno izquierdo y derecho:

    • grande: este es el tamaño por defectoIgcTreeGridComponent con la intensidad más baja y la altura de fila iguales a.50px Los acolchones izquierdo y derecho son24px; La columnawidth mínima es80px;
    • Media: es el tamaño medio intenso con40px altura de fila. Los acolchones izquierdo y derecho son16px; La columnawidth mínima es64px;
    • Pequeña: es la talla con mayor intensidad y32px altura de fila. Los acolchones izquierdo y derecho son12px; La columnawidth mínima es56px;

    [!Note] Please keep in mind that currently you can not override any of the sizes.

    Ahora continuemos con nuestra muestra y veamos en acción cómo se aplica.--ig-size Primero añadimos un botón que nos ayudará a cambiar entre cada tamaño:

    <div class="size-chooser">
        <igc-property-editor-panel
        description-type="WebTreeGrid"
        is-horizontal="true"
        is-wrapping-enabled="true"
        name="PropertyEditor"
        id="propertyEditor">
            <igc-property-editor-property-description
            name="SizeEditor"
            id="SizeEditor"
            label="Grid Size:"
            value-type="EnumValue"
            drop-down-names="Small, Medium, Large"
            drop-down-values="Small, Medium, Large">
            </igc-property-editor-property-description>
        </igc-property-editor-panel>
    </div>
    

    Ahora podemos agregar el marcado.

    <igc-tree-grid id="grid" primary-key="ID" foreign-key="ParentID" width="100%"
        height="550px" allow-filtering="true">
        <igc-column field="Name" data-type="String" sortable="true" has-summary="true" width="200px"></igc-column>
        <igc-column-group pinned="false" header="General Information">
            <igc-column field="HireDate" data-type="Date" sortable="true" has-summary="true">
            </igc-column>
            <igc-column-group header="Person Details">
                <igc-column field="ID" data-type="Number" filterable="false"></igc-column>
                <igc-column field="Title" data-type="String" sortable="true" has-summary="true"></igc-column>
                <igc-column field="Age" data-type="Number" sortable="true" has-summary="true" filterable="false"></igc-column>
            </igc-column-group>
        </igc-column-group>
        <igc-column-group header="Address Information">
            <igc-column-group header="Location">
                <igc-column field="Country" data-type="String" sortable="true" has-summary="true"></igc-column>
                <igc-column field="City" data-type="String" sortable="true" has-summary="true"></igc-column>
                <igc-column field="Address" data-type="String" sortable="true" has-summary="true"></igc-column>
            </igc-column-group>
            <igc-column-group header="Contact Information">
                <igc-column field="Phone" data-type="String" sortable="true" has-summary="true"></igc-column>
                <igc-column field="Fax" data-type="String" sortable="true" has-summary="true"></igc-column>
                <igc-column field="PostalCode" data-type="String" sortable="true" has-summary="true"></igc-column>
            </igc-column-group>
        </igc-column-group>
        <igc-column-group header="Address Information">
            <igc-column-group header="Location">
                <igc-column field="Country" data-type="String" sortable="true" has-summary="true"></igc-column>
                <igc-column field="City" data-type="String" sortable="true" has-summary="true"></igc-column>
                <igc-column field="Address" data-type="String" sortable="true" has-summary="true"></igc-column>
            </igc-column-group>
            <igc-column-group header="Contact Information">
                <igc-column field="Phone" data-type="String" sortable="true" resizable="true"></igc-column>
                <igc-column field="Fax" data-type="String" sortable="true" resizable="true"></igc-column>
                <igc-column field="PostalCode" data-type="String" sortable="true" resizable="true"></igc-column>
            </igc-column-group>
        </igc-column-group>
    </igc-tree-grid>
    

    Finalmente, proporcionemos la lógica necesaria para aplicar realmente el tamaño:

    constructor() {
        var propertyEditor = this.propertyEditor = document.getElementById('PropertyEditor') as IgcPropertyEditorPanelComponent;
        var sizeEditor = this.sizeEditor = document.getElementById('SizeEditor') as IgcPropertyEditorPropertyDescriptionComponent;
        var grid = this.grid = document.getElementById('grid') as IgcTreeGrid;
        propertyEditor.componentRenderer = this.renderer;
        propertyEditor.target = this.grid;
        this.webGridSetGridSize = this.webGridSetGridSize.bind(this);
        sizeEditor.changed = this.webGridSetGridSize;
        grid.data = this.data;
    }
    
    private _componentRenderer: ComponentRenderer = null;
    public get renderer(): ComponentRenderer {
        if (this._componentRenderer == null) {
            this._componentRenderer = new ComponentRenderer();
            var context = this._componentRenderer.context;
            PropertyEditorPanelDescriptionModule.register(context);
            WebGridDescriptionModule.register(context);
        }
        return this._componentRenderer;
    }
    
    public webGridSetGridSize(sender: any, args: IgcPropertyEditorPropertyDescriptionChangedEventArgs): void {
        var newVal = (args.newValue as string).toLowerCase();
        var grid = document.getElementById("grid");
        grid.style.setProperty('--ig-size', `var(--ig-size-${newVal})`);
    }
    

    Another option that IgcTreeGridComponent provides for you, in order to be able to change the height of the rows in the IgcTreeGridComponent, is the property RowHeight. So let's see in action how this property affects the IgcTreeGridComponent layout along with the --ig-size.

    Por favor tenga en cuenta lo siguiente:

    • --ig-size CSS variable will have no impact on row height if there is RowHeight specified.
    • --ig-sizeafectará a todos los demás elementos de la Red del Árbol, como se ha descrito anteriormente.

    We can now extend our sample and add RowHeight property to the IgcTreeGridComponent:

    <igc-tree-grid id="grid" class="gridSize" row-height="80px" width="100%" height="550px" allow-filtering="true">
    </igc-tree-grid>
    

    API References

    Nuestra comunidad es activa y siempre da la bienvenida a nuevas ideas.