Wie kann ich überprüfen, ob eine Kendo Grid Änderungen aufweist? Ich habe gehört, dass es eine dirty
Eigenschaft gibt, aber ich kann es nicht finden.Wie überprüfe ich, ob ein Kendo Grid Änderungen daran vorgenommen hat?
Antwort
Bei den addierten Zeilen wird die Eigenschaft dirty auf true gesetzt und die Zeilen werden aktualisiert. Gelöschte Zeilen werden jedoch an anderer Stelle (in der _destroyed-Auflistung) gespeichert. Übergeben Sie diese Funktion an die Datenquelle Ihres Gitters, um zu sehen, ob es Änderungen gibt.
function doesDataSourceHaveChanges(ds)
{
var dirty = false;
$.each(ds._data, function()
{
if (this.dirty == true)
{
dirty = true;
}
});
if (ds._destroyed.length > 0) dirty = true;
return dirty;
}
Sie können benachrichtigt, und das Änderungsereignis von der Datenquelle verwendet werden, die, wo immer Sie Seite auftreten/Art/Gruppe/Filter/create/lesen/update/delete Rekord.
Um ein Handler es anfügen:
$('#YourGrid').data().kendoGrid.dataSource.bind('change',function(e){
//the event argument here will indicate what action just happned
console.log(e.action)// could be => "itemchange","add" or "remove" if you made any changes to the items
})
Update: Wenn der Benutzer eines der Modelle .hasChanges() -Methode von der Datenquelle wahr wird wieder aktualisiert.
einen Versuch wert:
var hasDirtyRow = $.grep(gridDataSource.view(), function(e) { return e.dirty === true; });
if (hasDirtyRow.length != 0)
{
// grid has dirty row(s)
}
Sie können das ‚haschanges‘ -Methode auf die zugrunde liegenden Datasource des Grid:
grid.dataSource.hasChanges();
$('#divGrid').data('kendoGrid').dataSource.hasChanges();
Dies wird nicht, wenn Sie den Eigenschaftswert aktualisieren. macht es? – Gayan
grid.dataSource.hasChanges lassen Sie wissen, wenn die Datenquelle geändert hat
Wenn Sie 'batch: true' festgelegt haben, gibt es ein' change'-Ereignis, das anzeigt, wann eine Änderung aufgetreten ist . –
Sie haben gerade bemerkt, dass Sie das DataSource-Schema definieren müssen, wenn die hasChanges() - Funktion funktionieren soll (oder die schmutzige Eigenschaft in einem dataItem angezeigt werden soll). – Misi