Kendo UI source de données d'événements de changement: est-ce que ça marche?
Est la source de données.un événement a changé de travail?
Après mon Kendo UI grille est instancié, je suis de liaison de l'événement de changement par la documentation ici:
http://docs.kendoui.com/api/framework/datasource#change
//To set after initialization
dataSource.bind("change", function(e) {
//handle event
});
Je suis en train de faire ceci:
//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();
}
Mais mon dataChanged() la fonction n'est pas appelée quand je fais une de ces deux choses:
var grid = $('#grid').data('kendoGrid');
grid.dataSource.data()[1]["deptname"] = 'XXX';
ou
grid.dataSource.data = aDifferentArray;
Je ne suis pas sûr exactement ce que le "changement" de l'événement est à l'écoute pour. Ce qui, précisément, est censé déclencher?
Si je créer une toute nouvelle source de données, et de l'attribuer à la grille qui dispose déjà d'une source de données, je ne vois pas comment cela pourrait déclencher une source de données existante de l'événement a changé. Un tel événement (la grille de remarquer que sa source de données a été remplacée par une autre) serait une grille au niveau de l'événement, pas une source de données au niveau de l'événement, à droite?
OriginalL'auteur Tim | 2012-12-15
Vous devez vous connecter pour publier un commentaire.
La chose importante à noter est que les données de la sauvegarde de la
DataSource
est unObservableArray
, et que les éléments de données dans ce tableau sont convertis àObservableObject
s.La
change
cas de la source de données est déclenché sous 2 conditions:Les données
ObservableArray
changements (un enregistrement est inséré, supprimés). Un exemple de ceci serait en utilisant leDataSource.add()
ouDataSource.remove()
fonctions.Si une propriété a changé de l'événement bulles jusqu'à la source de données à partir de l'une des
ObservableData
objets dans le tableau. Cependant, tout comme le reste de l'Kendo MVVM cadre, la notification qu'une propriété a changé de se produit uniquement lorsque son.set("propertyName", value)
fonction est appelée.C'est pourquoi
grid.dataSource.data()[1]["deptname"] = 'XXX';
n'est pas le déclenchement de l'événement de changement. Si vous le remplacez par:grid.dataSource.data()[1].set("deptname", 'XXX');
ensuite, il devrait commencer à travailler. En gros, pensez à lachange
événement comme étant tiré en réponse à une MVVM changement de propriété tiré de ladata
l'objet observé.Que pour changer le tableau de données
grid.dataSource.data = aDifferentArray;
je ne suis vraiment pas sûr si cela va ou devrait susciter un changement. Je n'ai jamais essayé..set
méthode ne déclencher le changement de l'événement alors quegrid.dataSource.data = aDifferentArray
n'a pas, autant que je puis dire. J'espère qu'il y est de Kendo grille d'un équivalent à DataSource_Changed événement en WinForms grilles--déclenché lorsque la grille est une autre source de données, parce que je suis l'espoir de l'actualisation de la grille avec de nouvelles données, toutes les 60 secondes: stackoverflow.com/questions/13892021/...En fait, pour échanger les données, je pense que vous utilisez le
.data()
fonction: docs.kendoui.com/api/framework/datasource#data de sorte que votre code seraitgrid.dataSource.data(aDifferentArray);
excellent! Merci beaucoup.
personne n'a jamais considéré l'utilisation de kendo.Observables? je suis en train de mettre ma source de données comme un fait observable et donc à chaque fois il y a un changement, il va mettre à jour le modèle de vue
OriginalL'auteur CodingWithSpike