So löschen Sie Elemente aus einem Baum
Habe ich versucht, dieses Beispiel zu verwenden, und fügen Sie grundlegende CRUD-an einen Baum.
http://dev.sencha.com/deploy/ext-4.0.0/examples/tree/treegrid.html
Für jetzt, ich will einfach nur, um ein Element zu löschen aus dem Baum. Ich habe Hinzugefügt-Taste und klicken Sie unter:
click : function() {;
var record = tree.getSelectionModel().getSelection()[0];
store.destroy(record);
store.sync();
}
Habe ich überprüft, die die Aufzeichnung und Speicherung existieren. Der laden ist vom Typ TreeStore wie in dem Beispiel. Wenn ich die Anfrage gesendet wird, ist es nur []
. Alle, die ich in meinem proxy im moment ist dieses:
var store = Ext.create('Ext.data.TreeStore', {
storeId : 'treeStore',
model : 'Task',
proxy : {
type : 'ajax',
//the store will get the content from the .json file
url : '../resources/data/treegrid.json'
},
folderSort : true
});
Klick auf löschen entfernt die aktuell ausgewählte Element. Brauche ich ein geeignetes zerstören URL im proxy und warum ist Sie nicht senden Sie alle details über das, was muss gelöscht werden-in der Anforderung header? Es gab keine anderen Beispielen zu tun CRUD aus einem Baum, den ich finden konnte.
EDIT:
Beachten Sie, dass der Grund für die Verwirrung mit store.destroy(record)
war, dass Ext.Daten.Speichern hat eine Methode remove(record)
aber Ext.Daten.TreeStore nicht. Auch eine Kurzform Ansatz zu zerstören ist record.destroy()
eher als record.remove(true)
.
Beachten Sie jedoch, dass erhielt ich Fehler mache record.destroy()
oder record.remove(true)
. Vermutlich sind die Speicher behalten muss der Knoten senden über JSON zu verwenden, so record.remove()
statt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Baum-store hat keine Methode zu zerstören.
Da der Datensatz von einem treestore, Sie ist verziert mit einem Knoten-Schnittstelle. So verwenden Sie die remove-Methode ( mit dem optionalen zerstören).
store.getRemovedRecords()
vor dessen an den proxy gesendet.record.remove()
sonst gab es Fehler.