Reordenación y movimiento de columnas de cuadrícula jerárquica

    La función de movimiento de columnas de cuadrícula jerárquica Web Components en Ignite UI for Web Components permite un reordenamiento rápido y sencillo de las columnas. Esto se puede hacer a través de la API de movimiento de columnas o arrastrando y soltando los encabezados a otra posición mediante el mouse o gestos táctiles. En la cuadrícula jerárquica Web Components, puede habilitar el movimiento de columnas para columnas ancladas y no ancladas, así como para encabezados de varias columnas.

    Solo se permite reordenar entre columnas y grupos de columnas cuando están en el mismo nivel en la jerarquía y ambos están en el mismo grupo. Se permite moverse entre columnas/grupos de columnas, si son columnas de nivel superior.

    Si el encabezado de una columna tiene una plantilla y el movimiento de columnas está habilitado o la columna correspondiente es agrupable, entonces los elementos con plantilla deben tener el atributo arrastrable establecido en falso.

    Si el área anclada supera su ancho máximo permitido (80% del ancho total de IgcHierarchicalGridComponent), una pista visual notifica al usuario final que la operación de colocación está prohibida y que el anclaje no es posible. Esto significa que no se le permitirá soltar una columna en el área anclada.

    public headerTemplate = (ctx: IgcCellTemplateContext) => {
        return html`
            <igc-icon draggable="false" @click="${() => this.onClick()}"></igc-icon>
        `;
    }
    ts

    Web Components Ejemplo de descripción general de movimiento de columnas de cuadrícula jerárquica

    EXAMPLE
    TS
    HTML
    CSS

    ¿Te gusta esta muestra? Obtenga acceso a nuestro kit de herramientas de Ignite UI for Web Components completo y comience a crear sus propias aplicaciones en minutos. Descárgalo gratis.

    Descripción general

    La función de movimiento de columnas está habilitada en un nivel por cuadrícula, lo que significa que IgcHierarchicalGridComponent podría tener columnas móviles o inamovibles. Esto se hace a través de la moving entrada de la IgcHierarchicalGridComponent.

    <igc-hierarchical-grid moving="true">
        ...
        <igc-row-island moving="true"></igc-row-island>
    </igc-hierarchical-grid>
    html
    Ignite UI for Web Components | CTA Banner

    API

    Además de la funcionalidad de arrastrar y soltar, la función Mover columnas también proporciona métodos API para permitir mover una columna/reordenar columnas mediante programación:

    moveColumn: mueve una columna antes o después de otra columna (un objetivo). El primer parámetro es la columna que se va a mover y el segundo parámetro es la columna de destino. También acepta un tercer parámetro opcional Position (que representa un valor DropPosition), que determina si se coloca la columna antes o después de la columna de destino.

    // Move the ID column after the Name column
    const idColumn = grid.getColumnByName("ID");
    const nameColumn = grid.getColumnByName("Name");
    
    grid.moveColumn(idColumn, nameColumn, DropPosition.AfterDropTarget);
    typescript

    move: mueve una columna a un índice visible específico. Si el parámetro de índice pasado no es válido (es negativo o excede el número de columnas), o si no se permite que la columna se mueva a este índice (si está dentro de otro grupo), no se realiza ninguna operación.

    // Move the ID column at 3rd position.
    const idColumn = grid.getColumnByName("ID");
    idColumn.move(3);
    typescript

    Tenga en cuenta que cuando se utiliza la función de movimiento de columnas, se emitirá el evento ColumnMovingEnd si la operación se realizó correctamente. También tenga en cuenta que, en comparación con la funcionalidad de arrastrar y soltar, el uso de la función de movimiento de columnas no requiere establecer la propiedad moving en verdadero.

    Eventos

    Hay varios eventos relacionados con el movimiento de la columna para proporcionar un medio para aprovechar las operaciones de arrastrar y soltar de las columnas. Estos son ColumnMovingStart, ColumnMoving y ColumnMovingEnd.

    Puede suscribirse al evento de la ColumnMovingEnd​ ​IgcHierarchicalGridComponent para implementar alguna lógica personalizada cuando una columna se coloca en una nueva posición. Por ejemplo, puede cancelar la eliminación de la columna Categoría después de la columna Cambio en el año (%) en el siguiente fragmento de código.

    <igc-hierarchical-grid id="dataGrid" auto-generate="false" moving="true">
        <igc-column field="Category"></igc-column>
        <igc-column field="Change On Year(%)" data-type="Number" ></igc-column>
    </igc-hierarchical-grid>
    html
    constructor() {
        var dataGrid = this.dataGrid = document.getElementById('dataGrid') as IgcHierarchicalGridComponent;
        dataGrid.data = this.data;
        dataGrid.addEventListener("columnMovingEnd", this.onColumnMovingEnd);
    }
    typescript
    public onColumnMovingEnd(event) {
        if (event.detail.source.field === "Category" && event.detail.target.field === "Change On Year(%)") {
            event.detail.cancel = true;
        }
    }
    typescript

    Estilo

    Además de los temas predefinidos, la cuadrícula se puede personalizar aún más configurando algunas de las propiedades CSS disponibles.

    En caso de que desee cambiar algunos de los colores, primero debe establecer una clase para la cuadrícula:

    <igc-hierarchical-grid class="grid"></igc-hierarchical-grid>
    html

    Luego establezca las propiedades CSS relacionadas con esta clase:

    .grid {
        --ig-grid-ghost-header-text-color: #f4d45c;
        --ig-grid-ghost-header-background: #ad9d9d;
        --ig-grid-ghost-header-icon-color: #f4d45c;
    }
    css

    Manifestación

    EXAMPLE
    TS
    HTML
    CSS

    Referencias de API

    Recursos adicionales

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