2012-10-04 18 views
16

मैं कैसे देख सकता हूं कि Kendo Grid में परिवर्तन है या नहीं? मैंने सुना है कि dirty संपत्ति है, लेकिन मुझे यह नहीं मिल रहा है।मैं कैसे जांचूं कि एक केंडो ग्रिड में बदलाव हुए हैं या नहीं?

+0

यदि आपने 'बैच: सत्य' सेट किया है, तो एक 'चेंज' ईवेंट है जो इंगित करता है कि जब भी कोई परिवर्तन हुआ होता है । –

+0

बस ध्यान दिया गया है कि यदि आप हैशैंग्स() फ़ंक्शन को काम करने के लिए चाहते हैं (या गंदे गुण डेटा इटैम पर दिखने के लिए) चाहते हैं तो आपको डेटा स्रोत स्कीमा को परिभाषित करने की आवश्यकता है। – Misi

उत्तर

16

जोड़ा पंक्तियों में गंदे संपत्ति को सत्य पर सेट किया जाएगा और इसलिए पंक्तियां अपडेट की जाएंगी। लेकिन, हटाए गए पंक्तियों को कहीं और संग्रहीत किया जाता है (_destroyed संग्रह में)। इस फ़ंक्शन को अपने ग्रिड के डेटासोर्स को यह देखने के लिए पास करें कि इसमें परिवर्तन हैं या नहीं।

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

पर आपको सूचित और डेटा स्रोत जो भी आप पृष्ठ/तरह/समूह/फिल्टर/बनाने हो जाएगा के परिवर्तन घटना का उपयोग कर सकते हैं// पढ़ने/अद्यतन रिकॉर्ड को हटाने।

संलग्न करने के लिए यह करने के लिए कोई हैंडलर का उपयोग करें:

$('#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 
}) 

अद्यतन: उपयोगकर्ता मॉडल .hasChanges में से किसी को अपडेट किया गया है() डेटा स्रोत की विधि सही वापस आ जाएगी। एक कोशिश

1

लायक:

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

आप ग्रिड की अंतर्निहित डेटा स्रोत पर 'hasChanges' विधि का उपयोग कर सकते हैं:

grid.dataSource.hasChanges(); 

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

यह नहीं होगा कि आप संपत्ति मूल्य अपडेट करते हैं। क्या यह? – Gayan

3

grid.dataSource.hasChanges आप जानते हैं कि डेटा स्रोत बदल गया है दूँगी

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