Kendo Grid'un değişikliklerinin olup olmadığını nasıl kontrol edebilirim? dirty
özelliğinin olduğunu duydum, ancak bulamıyorum.Kendo Grid'in üzerinde değişiklik yapılmış olup olmadığını nasıl kontrol edebilirim?
cevap
Eklenen satırlar kirli özelliği true olarak ayarlanır ve böylece satır güncellenmiş sahip olacak. Ancak, silinmiş satırlar başka bir yerde saklanır (_destroyed koleksiyonunda). Değişiklikler olup olmadığını görmek için kılavuzunuzun veri kaynağını bu işleve iletin.
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;
}
Sen///güncelleme okumak kaydı silmek bildirilir ve size sayfa/sıralama/grup/filtre oluşturmak/her yerde ortaya çıkar dataSource değişimi olayı kullanmak alabilirsiniz.
buna bir işleyici kullanmak takmak için:$('#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
})
Güncelleme: Kullanıcı modelleri .hasChanges herhangi güncellenmiş ise() dataSource yöntemini gerçek dönecektir.
bir cami:
var hasDirtyRow = $.grep(gridDataSource.view(), function(e) { return e.dirty === true; });
if (hasDirtyRow.length != 0)
{
// grid has dirty row(s)
}
Sen Grid yatan DataSource üzerinde 'hasChanges' yöntemi kullanabilirsiniz: veri kaynağı değiştiyse
grid.dataSource.hasChanges();
$('#divGrid').data('kendoGrid').dataSource.hasChanges();
, özellik değerini güncellerseniz bu olmaz. yapar? – Gayan
grid.dataSource.hasChanges size bildireceğiz
if (datasource.hasChanges() === true) {
alert('yes');
} else {
alert('no');
}
Eğer kurduysanız 'toplu: TRUE, bir değişiklik oluştu zaman gösteren bir' değişiklik 'olay yoktur . –
Sadece sen (bir DataItem görünmesini veya kirli özelliğini) hasChanges() işlevi çalışmak istiyorsanız dataSource şema tanımlamak gerektiğini fark ettim. – Misi