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

    La función de movimiento de columnas de la cuadrícula jerárquica Blazor en Ignite UI for Blazor permite reordenar las columnas de manera rápida y sencilla. Esto se puede hacer a través de la API de movimiento de columnas o arrastrando y soltando los encabezados en otra posición mediante gestos táctiles o del mouse. En la cuadrícula jerárquica Blazor, puede habilitar el movimiento de columnas para columnas fijadas y desfijadas, y también para encabezados de varias columnas.

    Reordering between columns and column groups is allowed only when they are at the same level in the hierarchy and both are in the same group. Moving is allowed between columns/column-groups, if they are top level columns.

    If a column header is templated and the Column Moving is enabled or the corresponding column is groupable, then the templated elements need to have the draggable attribute set to false!

    If the pinned area exceeds its maximum allowed width (80% of the total IgbHierarchicalGrid width), a visual clue notifies the end user that the drop operation is forbidden and pinning is not possible. This means you won't be allowed to drop a column in the pinned area.

        public RenderFragment<IgbColumnTemplateContext> headerTemplate => (context) =>
        {
            return @<IgbIcon Collection="fas" IconName="fa-thumbtack" draggable="false" @onclick="() => onClick()"></IgbIcon>;
        };
    razor

    Blazor Hierarchical Grid Column Moving Overview Example

    EXAMPLE

    Like this sample? Get access to our complete Ignite UI for Blazor toolkit and start building your own apps in minutes. Download it for free.

    Overview

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

    <IgbHierarchicalGrid Moving=true>
        ...
        <IgbRowIsland Moving=true></IgbRowIsland>
    </IgbHierarchicalGrid>
    razor

    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 destino). 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.

        public async void HandleClick()
        {
            IgbColumn Col1 = await this.grid.GetColumnByVisibleIndexAsync(0);
            IgbColumn Col2 = await this.grid.GetColumnByVisibleIndexAsync(1);
            this.Grid.MoveColumn(Col1,Col2, DropPosition.AfterDropTarget);
        }
    razor

    Move: mueve una columna a un índice visible especificado. 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.

        public async void HandleClick()
        {
            IgbColumn Col1 = await this.grid.GetColumnByVisibleIndexAsync(0);
            this.Col1.Move(3);
        }
    razor

    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. Tenga en cuenta también 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​ ​IgbHierarchicalGrid 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.

        <IgbHierarchicalGrid ShowGroupArea="true" @ref='Grid' Width="100%" Height="100%"
                 AllowFiltering=true
                 FilterMode="FilterMode.ExcelStyleFilter"
                 AutoGenerate=true
                 Data=northwindEmployees
                 Moving="true"
                 ColumnMovingEndScript='onColumnMovingEnd'>
        </IgbHierarchicalGrid>
    razor
    igRegisterScript("onColumnMovingEnd", (event) => {
        if (event.detail.source.field === "Category" && event.detail.target.field === "Change On Year(%)") {
            event.detail.cancel = true;
        }
    }, false);
    razor

    Styling

    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:

    <IgbHierarchicalGrid class="grid"></IgbHierarchicalGrid>
    razor

    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

    Demo

    EXAMPLE

    API References

    Additional Resources

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