2013-01-24 17 views
13

Sto usando l'evento edit su una griglia di Kendo per mostrare un paio di colonne nascoste. Li nasconderò di nuovo sull'evento save.Kendo Grid annulla evento di modifica

Problema che ho è che non sembra essere un evento per annullare la modalità di modifica, quindi la colonna si rovina se l'utente fa clic su Annulla.

Esiste un evento non documentato per l'annullamento o è necessario trovare una soluzione alternativa?

risposta

18

In pratica non esiste un evento "Annulla", tuttavia è possibile allegare un evento di clic sul pulsante "Annulla" nell'evento еdit della griglia. Si prega di verificare l'esempio seguente:

function onEdit(e) { 
    e.container.find(".k-grid-cancel").bind("click", function() { 
     //your code here 
    }) 
} 

EDIT: Da qualche tempo t ha Griglia hanno "cancel" evento che può essere utilizzata al posto della soluzione di cui sopra:

11

Ho cercato una risposta alla stessa domanda ma questo non ha funzionato per me. Ho avuto uno scenario in cui i record nuovi e modificati all'interno della mia griglia sono convalidati all'interno del mio controller e vengono aggiunti messaggi di errore alla raccolta ModelError di ModelState. Avevo collegato evento di errore origine dati della griglia, che quindi visualizzato il messaggio di errore all'interno di un avviso, e poi aggiunto il seguente, che reimpostare le modifiche:

$('#MyGrid').data("kendoGrid").cancelChanges(); 

E 'stata una soluzione chiara per me, perché io sto usando la paginazione e la la pagina corrente che l'utente sta visualizzando è preservata.

+1

Nell'evento di errore è anche possibile utilizzare semplicemente questa parola chiave per cancelChanges ie. this.CancelChanges() invece di specificare l'intero percorso. –

+0

è possibile usare cancelChanges() per una particolare colonna? – ManirajSS

7

Contrariamente a ciò che la risposta accettata afferma, esiste infatti un cancel event proprio come l'evento di modifica.

$("#grid").kendoGrid({ 
    ... 
    edit: function(e) { 
     alert("edit") 
    }, 
    cancel: function(e) { 
     alert("cancel"); 
    }, 
    ... 
}); 
+0

Se si utilizza la modalità di modifica "incell", l'evento di annullamento non si attiva. La documentazione dice che si attiva solo per le modalità di modifica "inline" o "popup". –

Problemi correlati