2012-10-04 8 views
16

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?

+0

Eğer kurduysanız 'toplu: TRUE, bir değişiklik oluştu zaman gösteren bir' değişiklik 'olay yoktur . –

+0

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

cevap

16

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; 
} 
8

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.

1

bir cami:

var hasDirtyRow = $.grep(gridDataSource.view(), function(e) { return e.dirty === true; }); 
if (hasDirtyRow.length != 0) 
{ 
    // grid has dirty row(s) 
} 
26

Sen Grid yatan DataSource üzerinde 'hasChanges' yöntemi kullanabilirsiniz: veri kaynağı değiştiyse

grid.dataSource.hasChanges(); 

$('#divGrid').data('kendoGrid').dataSource.hasChanges(); 
+0

, özellik değerini güncellerseniz bu olmaz. yapar? – Gayan

3

grid.dataSource.hasChanges size bildireceğiz

      if (datasource.hasChanges() === true) { 
           alert('yes'); 
          } else { 
           alert('no'); 
          } 
İlgili konular