Edição de grade de React
O recurso Ignite UI for React Cell Editing no React Grid oferece uma maneira fácil de realizar operações de manipulação de dados, como criar, atualizar e excluir registros. EleIgrGrid oferece uma API pública poderosa que permite personalizar a forma como essas operações são realizadas. As fases de manipulação de dados são:
- Edição de células
- Edição de linha
- Edição em lote (em breve)
Setup
Para especificar qual modo de edição deve ser ativado, oIgrGrid modo expõe as seguintes propriedades booleanas -editableandrowEditable.
Aeditable propriedade permite que você especifique as seguintes opções:
- false- a edição para a coluna correspondente será desabilitada. Este é o valor padrão.
- verdadeiro- a edição da coluna correspondente será habilitada.
Lembre-se de que, se a coluna não for editável, você ainda pode modificar seu valor através da API pública exposta pelo
IgrGrid.
ArowEditable propriedade permite que você especifique as seguintes opções:
- false- a edição de linha na grade correspondente será desabilitada. Este é o valor padrão.
- verdadeiro- a edição de linhas na grade correspondente será habilitada.
NoIgrGrid caso de que você definirrowEditable a propriedade como true e aeditable propriedade não estiver explicitamente definida para nenhuma coluna, a edição será ativada para todas as colunas, exceto para a chave primária.
- Edição de células e lotes- neste cenário, cada modificação de cada célula é preservada separadamente e as operações de desfazer/refazer estão disponíveis no nível da célula;
- Edição de linha e lote- neste cenário, as modificações são preservadas no nível da linha, portanto, as operações de desfazer/refazer não funcionarão para cada célula modificada, mas para o grupo de células de cada linha.
Editing Templates
Se você quiser usar modelos de edição específicos do tipo de dado, deve especificar a propriedade dadataType coluna. Então, vamos agora ver quais são os modelos padrão para cada tipo:
- Para o
stringtipo de dado, o template padrão é o usoIgrInput. - Para
numbero tipo de dado, o template padrão usaIgrInputtype="number", então se você tentar atualizar a célula para um valor que não pode ser analisado para um número, sua alteração será descartada, e o valor na célula será definido como 0. - Para o
datetipo de dado, o template padrão é usarIgrDatePicker - Para o
dateTimetipo de dado, o template padrão é o usoDateTimeEditor. Este editor vai te dar instruções de máscara para a parte dos elementos de entrada do objeto DateTime. - Tipo de dado,
timeo template padrão está usandoTimePicker. - Para o
booleantipo de dado, o template padrão é o usoIgrCheckbox. - Para o
currencytipo de dado, o template padrão é o usoInputGroupcom configuração de prefixo/sufixo baseada nas configurações de aplicação ou de grade. - Para o
percenttipo de dado, o template padrão é o usoInputGroupdo elemento com sufixo que mostra uma prévia do valor editado em percentagens.
- Para modelos personalizados, você pode ver o tópico Edição de células
Todos os tipos de dados de coluna disponíveis podem ser encontrados no tópico oficial Tipos de coluna.
Event Arguments and Sequence
A grade expõe uma ampla variedade de eventos que fornecem maior controle sobre a experiência de edição. Esses eventos são disparados durante o ciclo de vida de edição de linha e edição de célula- ao iniciar, confirmar ou cancelar a ação de edição.
| Acontecimento | Descrição | Argumentos | Cancelável |
|---|---|---|---|
RowEditEnter |
SeRowEditing estiver ativado, será acionado quando uma linha entrar no modo de edição |
IgrGridEditEventArgs |
**verdadeiro*- |
CellEditEnter |
Acionado quando uma célula entra no modo de edição (depoisRowEditEnter) |
IgrGridEditEventArgs |
**verdadeiro*- |
CellEdit |
Se o valor for alterado, será acionado imediatamente antes de o valor de uma célula ser confirmado (por exemplo, pressionando ENTER) | IgrGridEditEventArgs |
**verdadeiro*- |
CellEditDone |
Se o valor for alterado, é acionado após uma célula ser editada e o valor da célula for **comprometido*- | IgrGridEditDoneEventArgs |
**falso*- |
CellEditExit |
Dispara quando uma célula **sai do modo de edição*- | IgrGridEditDoneEventArgs |
**falso*- |
RowEdit |
SeRowEditing estiver ativado, é acionado logo antes de uma linha no valor do modo de edição ser confirmado (por exemplo, clicando noDone botão na sobreposição de edição de linha) |
IgrGridEditEventArgs |
**verdadeiro*- |
RowEditDone |
SeRowEditing estiver ativado, será acionado depois que uma linha tiver sido editada e o valor da nova linha tiver sido confirmado. |
IgrGridEditDoneEventArgs |
**falso*- |
RowEditExit |
SeRowEditing estiver ativado, dispara quando uma linha **sai do modo de edição*- |
IgrGridEditDoneEventArgs |
**falso*- |
Event Cancellation
RowEditEnter- NemRowCellentrará no modo de edição.CellEditEnter- Impede a entrada na edição da célula. SerowEditableestiver ativada, a edição de linha será acionada, embora a edição por célula continue proibida.CellEdit- PermitidoCelle/ouRoweditar, ao apertar o botão Concluído ou Enter não compromete o valor ou a transação da linha. A edição de células e a edição de linha não serão fechadas até o botão Cancelar ser clicado.RowEdit- A célula de comprometimento é possível, mas não a fileira inteira. A linha permanecerá no modo de edição e a transação da linha será considerada aberta. Apertar Concluído não compromete nem fecha a linha. O botão Cancelar fecha o processo de edição e a transação sem comprometer as alterações.
O exemplo a seguir demonstra a sequência de execução de edição em ação:
Features integration
Enquanto uma célula/linha está no modo de edição, um usuário pode interagir com a grade de várias maneiras. A tabela a seguir especifica como uma determinada interação afeta a edição atual:
| Grade | Filtragem | Classificação | Paginação | Movente | Fixação | Escondendo | AgruparPor | Redimensionamento | Escapar | Entrar | F2 | Guia | Clique na célula | Adicionar nova linha/Excluir/Editar |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Manter o modo de edição | ✔ | |||||||||||||
| Sair do modo de edição | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | |
| Cometer | ✔ | ✔ | ✔ | ✔ | ✔ | |||||||||
| Descartar | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
Como visto na tabela, todas as interações, exceto o redimensionamento de uma coluna, encerrarão a edição e descartarão os novos valores. Caso o novo valor seja confirmado, isso pode ser feito pelo desenvolvedor no evento "-ing" do recurso correspondente.
Exemplo de como confirmar novos valores, se o usuário tentar classificar a coluna enquanto uma célula/linha estiver no modo de edição:
function onSorting(args: IgrSortingEventArgs) {
const grid = args.target as IgrGrid;
grid.endEdit(true);
}
<IgrGrid data={localData} primaryKey="ProductID" onSorting={onSorting}>
</IgrGrid>