Web Components Edición de cuadrícula jerárquica

    La función de edición de celdas Ignite UI for Web Components en Web Components Hierarchical Grid ofrece una forma sencilla de realizar operaciones de manipulación de datos como crear, actualizar y eliminar registros. TeIgcHierarchicalGridComponent proporciona una potente API pública que te permite personalizar la forma en que se realizan estas operaciones. Las fases de manipulación de datos son:

    Setup

    Para especificar qué modo de edición debe estar habilitado, exponeIgcHierarchicalGridComponent las siguientes propiedades booleanas -editableandrowEditable.

    Laeditable propiedad te permite especificar las siguientes opciones:

    • falso: se deshabilitará la edición de la columna correspondiente. Este es el valor predeterminado.
    • verdadero: se habilitará la edición de la columna correspondiente.

    Ten en cuenta que si la columna no es editable, aún puedes modificar su valor a través de la API pública expuesta por elIgcHierarchicalGridComponent.

    LarowEditable propiedad te permite especificar las siguientes opciones:

    • falso: se deshabilitará la edición de filas en la cuadrícula correspondiente. Este es el valor predeterminado.
    • verdadero: se habilitará la edición de filas en la cuadrícula correspondiente.

    En elIgcHierarchicalGridComponent, si ponesrowEditable la propiedad en true y laeditable propiedad no está definida explícitamente para ninguna columna, la edición estará habilitada para todas las columnas excepto para la clave primaria.

    • Edición de celdas y por lotes: en este escenario, cada modificación de cada celda se conserva por separado y las operaciones de deshacer/rehacer están disponibles a nivel de celda;
    • Edición de filas y por lotes: en este escenario, las modificaciones se conservan a nivel de fila, por lo que las operaciones de deshacer/rehacer no funcionarán para cada celda que se modifique, sino para el grupo de celdas de cada fila.

    Editing Templates

    Si quieres usar plantillas de edición específicas de tipo de dato, deberías especificar la propiedad dedataType la columna. Así que veamos ahora cuáles son las plantillas predeterminadas para cada tipo:

    • Para elstring tipo de dato, se usa laIgcInputComponent plantilla predeterminada.
    • Para el tipo denumber dato, la plantilla por defecto usaIgcInputComponent type="number", así que si intentas actualizar la celda a un valor que no se puede analizar a un número, el cambio será descartado y el valor en la celda se pondrá en 0.
    • Para eldate tipo de dato, la plantilla por defecto es usarIgcDatePickerComponent
    • Para eldateTime tipo de dato, se usa laDateTimeEditor plantilla predeterminada. Este editor te dará instrucciones de máscara para la parte de elementos de entrada del objeto DateTime.
    • Tipo de dato paratime el que se usa laTimePicker plantilla predeterminada.
    • Para elboolean tipo de dato, se usa laIgcCheckboxComponent plantilla predeterminada.
    • Para el tipo decurrency dato, la plantilla por defecto se usaInputGroup con configuración de prefijos/sufijos según la aplicación o la configuración de la zona de cuadrícula.
    • Para el tipo depercent dato, la plantilla predeterminada se utilizaInputGroup con un elemento con sufijo que muestra una vista previa del valor editado en porcentajes.

    Todos los tipos de datos de columna disponibles se pueden encontrar en el tema oficial Tipos de columna.

    Event Arguments and Sequence

    La cuadrícula expone una amplia gama de eventos que brindan un mayor control sobre la experiencia de edición. Estos eventos se activan durante el ciclo de vida de Edición de filas y Edición de celdas: al iniciar, confirmar o cancelar la acción de edición.

    Evento Descripción Argumentos Para interrumpir
    RowEditEnter SiRowEditing está habilitado, se activa cuando una fila ingresa al modo de edición IgcGridEditEventArgs **verdadero*-
    CellEditEnter Se activa cuando una celda ingresa al modo de edición (después deRowEditEnter) IgcGridEditEventArgs **verdadero*-
    CellEdit Si se cambia el valor, se dispara justo antes de que se confirme el valor de una celda (por ejemplo, presionando ENTER) IgcGridEditEventArgs **verdadero*-
    CellEditDone Si se cambia el valor, se activa después de que una celda haya sido editada y el valor de la celda esté **comprometido*- IgcGridEditDoneEventArgs **falso*-
    CellEditExit Se dispara cuando una celda **sale del modo de edición*- IgcGridEditDoneEventArgs **falso*-
    RowEdit SiRowEditing está habilitado, se activa justo antes de que se confirme el valor de una fila en el modo de edición (por ejemplo, al hacer clic en el botónDone en la superposición de edición de filas) IgcGridEditEventArgs **verdadero*-
    RowEditDone SiRowEditing está habilitado, se activa después de que se haya editado una fila y se haya confirmado el valor de la nueva fila. IgcGridEditDoneEventArgs **falso*-
    RowEditExit SiRowEditing está activado, se activa cuando una fila **sale del modo de edición*- IgcGridEditDoneEventArgs **falso*-

    Event Cancellation

    • RowEditEnter- Ni entrarán ni entrarán enRowCell modo edición.
    • CellEditEnter- Impide entrar en la edición de celdas. SirowEditable está activada, se activará la edición de fila, aunque la edición en celda seguirá prohibida.
    • CellEdit- PermitidoCell y/oRow editar, pulsar el botón Hecho o Enter no comprometerá el valor ni la transacción de fila. La edición de celdas y la edición de filas no se cerrarán hasta que se pulse el botón Cancelar.
    • RowEdit- Es posible confirmar la celda, pero no toda la fila. La fila permanecerá en modo edición y la transacción de la fila se considerará abierta. Pulsar Terminado no compromete ni cierra la fila. El botón de cancelar cierra el proceso de edición y la transacción sin comprometer los cambios.

    El siguiente ejemplo demuestra la secuencia de ejecución de edición en acción:

    Features integration

    Mientras una celda/fila está en modo de edición, un usuario puede interactuar con la cuadrícula de muchas maneras. La siguiente tabla especifica cómo una determinada interacción afecta la edición actual:

    Cuadrícula jerárquica Filtración Clasificación Paginación Moviente Fijar Ocultación Agrupar por Cambiar el tamaño Escapar Ingresar F2 Pestaña Clic en la celda Agregar nueva fila/Eliminar/Editar
    Mantener el modo de edición
    Salir del modo de edición
    Comprometerse
    Desechar

    Como se ve en la tabla, todas las interacciones, excepto cambiar el tamaño de una columna, finalizarán la edición y descartarán los nuevos valores. En caso de que se confirme el nuevo valor, el desarrollador puede hacerlo en el evento "-ing" de característica correspondiente.

    Ejemplo de cómo confirmar nuevos valores, si el usuario intenta ordenar la columna mientras una celda/fila está en modo de edición:

    <igc-hierarchical-grid id="grid" primary-key="ProductID" >
    </igc-hierarchical-grid>
    
    constructor() {
        var grid = this.grid = document.getElementById('grid') as IgcHierarchicalGridComponent;
        grid.data = this.data;
        grid.addEventListener("sorting", this.onSorting);
    }
    
    public onSorting(event: IgcSortingEventArgs) {
        var grid = document.getElementById('grid') as IgcHierarchicalGridComponent;
        grid.endEdit(true);
    }
    

    API References

    Additional Resources