React edición de cuadrícula
La función Ignite UI for React Cell Editing en React Grid proporciona una manera fácil de realizar operaciones de manipulación de datos como crear, actualizar y eliminar registros. IgrGrid
le proporciona una potente API pública que le permite personalizar la forma en que se realizan estas operaciones. Las fases de manipulación de datos son:
- Edición de celdas
- Edición de filas
- Edición por lotes (próximamente)
Setup
Para especificar qué modo de edición debe habilitarse, IgrGrid
expone las siguientes propiedades booleanas: editable
y rowEditable
.
La propiedad editable
le 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.
Tenga en cuenta que si la columna no es editable, aún puede modificar su valor a través de la API pública expuesta por
IgrGrid
.
La propiedad rowEditable
le 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 IgrGrid
, si establece la propiedad rowEditable
en verdadero y la propiedad editable
no está definida explícitamente para ninguna columna, la edición se habilitará para todas las columnas excepto la clave principal.
- 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 desea utilizar plantillas de edición específicas de un tipo de datos, debe especificar la propiedad dataType
de la columna. Entonces veamos ahora cuáles son las plantillas predeterminadas para cada tipo:
- For
string
data type, default template is usingIgrInput
. - Para el tipo de datos
number
, la plantilla predeterminada utilizaIgrInput
type="número", por lo que si intenta actualizar la celda a un valor que no se puede analizar como un número, su cambio se descartará y el valor en la celda será establecido en 0. - For
date
data type, default template is usingIgrDatePicker
- Para el tipo de datos
dateTime
, la plantilla predeterminada utilizaDateTimeEditor
. Este editor le dará instrucciones de máscara para los elementos de entrada que forman parte del objeto DateTime. - Para el tipo de datos
time
, la plantilla predeterminada utilizaTimePicker
. - For
boolean
data type, default template is usingIgrCheckbox
. - Para el tipo de datos
currency
, la plantilla predeterminada utilizaInputGroup
con configuración de prefijo/sufijo basada en la configuración regional de la aplicación o la cuadrícula. - Para el tipo de datos
percent
, la plantilla predeterminada utilizaInputGroup
con un elemento de sufijo que muestra una vista previa del valor editado en porcentajes.
- Para plantillas personalizadas, puede ver el tema Edición de celdas.
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 |
IgrGridEditEventArgs |
verdadero |
CellEditEnter |
Se activa cuando una celda ingresa al modo de edición (después deRowEditEnter ) |
IgrGridEditEventArgs |
verdadero |
CellEdit |
Si se cambia el valor, se activa justo antes de que se confirme el valor de una celda (por ejemplo, presionandoEnter ) |
IgrGridEditEventArgs |
verdadero |
CellEditDone |
Si se cambia el valor, se activa después de que se haya editado una celda y se haya confirmado el valor de la celda. | IgrGridEditDoneEventArgs |
FALSO |
CellEditExit |
Se activa cuando una celda sale del modo de edición | IgrGridEditDoneEventArgs |
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) |
IgrGridEditEventArgs |
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. |
IgrGridEditDoneEventArgs |
FALSO |
RowEditExit |
SiRowEditing está habilitado, se activa cuando una fila sale del modo de edición |
IgrGridEditDoneEventArgs |
FALSO |
Event Cancelation
RowEditEnter
- NiRow
Cell
entrará en modo de edición.CellEditEnter
: evita ingresar a la edición de celdas. SirowEditable
está habilitado, se activará la edición de filas, aunque la edición de celdas seguirá prohibida.CellEdit
- PermitidoCell
y/oRow
editar, al presionar el botón Listo o Enter, no se confirmará la transacción de valor o fila. La edición de celdas y la edición de filas no se cerrarán hasta que se haga clic en el botón Cancelar.RowEdit
: es posible confirmar la celda, pero no toda la fila. La fila permanecerá en modo de edición y la transacción de la fila se considerará abierta. Al presionar Listo no se confirma ni se cierra la fila. El botón Cancelar cierra el proceso de edición y la transacción sin confirmar 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:
Red | 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:
function onSorting(grid: IgrGrid, event: IgrSortingEventArgs) {
grid.endEdit(true);
}
<IgrGrid data={localData} primaryKey="ProductID" sorting={onSorting}>
</IgrGrid>