He intentado utilizar este ejemplo y agregar CRUD básico a un árbol.Cómo eliminar elementos de un árbol
http://dev.sencha.com/deploy/ext-4.0.0/examples/tree/treegrid.html
Por ahora, sólo quiero eliminar un elemento del árbol. He agregado el botón y tengo esto debajo de clic:
click : function() {;
var record = tree.getSelectionModel().getSelection()[0];
store.destroy(record);
store.sync();
}
He verificado que el registro y la tienda existen. La tienda es de tipo TreeStore como en el ejemplo. Si verifico la solicitud que se envía, es solo []
. Todo lo que tengo en mi proxy en este momento es este:
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
});
Al hacer clic en eliminar no se elimina el elemento seleccionado actualmente. ¿Tengo que configurar una URL de destrucción adecuada en el proxy y por qué no está enviando ningún detalle sobre lo que se debe eliminar en el encabezado de la solicitud? No hubo otros ejemplos de hacer CRUD de un árbol que pude encontrar.
EDIT:
Tenga en cuenta que la razón de la confusión de la utilización de store.destroy(record)
fue que Ext.data.Store tiene un método remove(record)
pero Ext.data.TreeStore no. Además, un enfoque abreviado para destruir es record.destroy()
en lugar de record.remove(true)
.
Sin embargo, tenga en cuenta que he recibido errores haciendo record.destroy()
o record.remove(true)
. Presumiblemente, la tienda necesita retener los nodos para enviarlos como JSON, por lo tanto, use record.remove()
.
Gracias, error tonto de mi parte :) También puedo ver el elemento eliminado con 'store.getRemovedRecords()' antes de enviarlo al proxy. –
Utilicé 'record.remove()' de lo contrario, dio errores. –