Così a causa del commento ho rimosso la mia risposta precedente - utilizzando l'evento blur sulle caselle di immissione (o altri elementi) sembra funzionare:
Sull'evento grid.edit, utilizzare jquery per associare all'evento di sfocatura della casella di testo (o qualsiasi altro controllo di modifica in linea) che viene generato quando lo stato attivo viene perso. Aggiungi questo alla definizione della griglia ... e ovviamente sostituisci l'avviso con il tuo codice.
edit: function (e) {
alert('Edit Fired');
$('input.k-input.k-textbox').blur(function() {
alert('blur event called');
});
},
Ho provato questo modificando il codice di modifica in linea del campione here
mio pieno fonte locale della modifica - vedono solo l'evento di modifica sulla definizione della griglia:
<div id="example" class="k-content">
<div id="grid"></div>
<script>
$(document).ready(function() {
var crudServiceBaseUrl = "http://demos.kendoui.com/service",
dataSource = new kendo.data.DataSource({
transport: {
read: {
url: crudServiceBaseUrl + "/Products",
dataType: "jsonp"
},
update: {
url: crudServiceBaseUrl + "/Products/Update",
dataType: "jsonp"
},
destroy: {
url: crudServiceBaseUrl + "/Products/Destroy",
dataType: "jsonp"
},
create: {
url: crudServiceBaseUrl + "/Products/Create",
dataType: "jsonp"
},
parameterMap: function (options, operation) {
if (operation !== "read" && options.models) {
return { models: kendo.stringify(options.models) };
}
}
},
batch: true,
pageSize: 20,
schema: {
model: {
id: "ProductID",
fields: {
ProductID: { editable: false, nullable: true },
ProductName: { validation: { required: true } },
UnitPrice: { type: "number", validation: { required: true, min: 1 } },
Discontinued: { type: "boolean" },
UnitsInStock: { type: "number", validation: { min: 0, required: true } }
}
}
}
});
$("#grid").kendoGrid({
dataSource: dataSource,
pageable: true,
height: 430,
toolbar: ["create"],
// added in hook to here to bind to edit element events.
// blur is fired when an element loses focus
edit: function (e) {
alert('Edit Fired');
$('input.k-input.k-textbox').blur(function (e) {
alert('blur event called');
});
},
columns: [
"ProductName",
{ field: "UnitPrice", title: "Unit Price", format: "{0:c}", width: "100px" },
{ field: "UnitsInStock", title: "Units In Stock", width: "100px" },
{ field: "Discontinued", width: "100px" },
{ command: ["edit", "destroy"], title: " ", width: "172px" }],
editable: "inline"
});
});
</script>
</div>
Poiché questo problema sembra essere aperto da tre anni e Telerik non ha fornito una soluzione ufficiale: hai aperto una richiesta di funzionalità a Telerik? C'è un evento "itemChange" nella griglia, ma non è documentato e non indica il nome della colonna. – Rolf