React Tree Grid Editing
O recurso Ignite UI for React Cell Editing no React Tree Grid oferece uma maneira fácil de realizar operações de manipulação de dados, como criar, atualizar e excluir registros. EleIgrTreeGrid 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, oIgrTreeGrid 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
IgrTreeGrid.
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.
NoIgrTreeGrid 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.
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 de árvore | 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 IgrTreeGrid;
grid.endEdit(true);
}
<IgrTreeGrid data={localData} primaryKey="ProductID" onSorting={onSorting}>
</IgrTreeGrid>