क्या डेटासोर्स.changed ईवेंट काम कर रहा है?केंडो यूआई डेटा स्रोत बदल गया घटना: क्या यह काम कर रहा है?
के बाद मेरी केंडो यूआई ग्रिड instantiated है, मैं यहाँ प्रलेखन प्रति परिवर्तन घटना बाध्यकारी हूँ:
// initialize
$("#grid").kendoGrid({
dataSource: dataSource,
blah blah blah
)
});
// end of initialization
// bind afterwards
var grid = $('#grid').data('kendoGrid');
grid.dataSource.bind("change", function (e) {
dataChanged();
});
//also tried a setTimeout:
// bind afterwards
setTimeout(function() {
var grid = $('#grid').data('kendoGrid');
grid.dataSource.bind("change", function (e) {
dataChanged();
});
}, 350);
function dataChanged() {
// handle "change" whatever that means -- documentation definition is hazy
// does reassigning the data array constitute a change?
// does changing the value of a particular item in the data array
// constitute a change?
// does removing an item from the data array constitute a change?
var grid = $("#grid").data("kendoGrid");
grid.refresh();
}
लेकिन मेरे dataChanged:
http://docs.kendoui.com/api/framework/datasource#change
//To set after initialization
dataSource.bind("change", function(e) {
// handle event
});
मैं यह कर रहा हूं() फ़ंक्शन को तब नहीं कहा जाता जब मैं इनमें से किसी एक चीज करता हूं:
var grid = $('#grid').data('kendoGrid');
grid.dataSource.data()[1]["deptname"] = 'XXX';
या
grid.dataSource.data = aDifferentArray;
मुझे यकीन है कि वास्तव में क्या 'बदला' घटना के लिए सुन रहा है नहीं कर रहा हूँ। क्या, ठीक है, इसे ट्रिगर करना चाहिए?
यदि मैं एक पूरी तरह से नया डेटा स्रोत बनाता हूं, और इसे ग्रिड को असाइन करता हूं जिसमें पहले से ही डेटा स्रोत है, तो मुझे नहीं लगता कि यह मौजूदा डेटा स्रोत के बदले हुए ईवेंट को कैसे ट्रिगर करेगा। इस तरह की एक घटना (ग्रिड यह ध्यान दे रही है कि इसका डेटा स्रोत एक अलग से बदल दिया गया है) एक ग्रिड-स्तरीय घटना होगी, डेटा स्रोत-स्तर की घटना नहीं, है ना?
स्पष्टीकरण के लिए धन्यवाद। '.set' विधि परिवर्तन ईवेंट को ट्रिगर करती है जबकि' grid.dataSource.data = aDifferentArray', जहां तक मैं कह सकता हूं। मुझे आशा है कि केंडो ग्रिड में WinForms ग्रिड में DataSource_Changed ईवेंट के बराबर होगा - जब ग्रिड को एक अलग डेटासोर्स असाइन किया जाता है, क्योंकि मैं हर 60 सेकंड में नए डेटा के साथ ग्रिड को रीफ्रेश करने की उम्मीद कर रहा हूं: http://stackoverflow.com/ प्रश्न/13892021/केंडो-यूई-ग्रिड-रीफ्रेशिंग-ग्रिड-डेटा-हर -60-सेकंड-साथ-नए-डेटा-डेटासॉर-ए/13892541 # टिप्पणी 1 9 40263_13892541 – Tim
दरअसल, डेटा को स्वैप करने के लिए, मुझे लगता है कि आप ' .data() 'फ़ंक्शन: http: //docs.kendoui।कॉम/एपीआई/फ्रेमवर्क/डेटासोर्स # डेटा इसलिए आपका कोड 'grid.dataSource.data (aDifferentArray) होगा;' – CodingWithSpike
उत्कृष्ट! बहुत बहुत धन्यवाद। – Tim