Ich habe ein seltsames Verhalten von removeAll festgestellt. Ich benutze ExtJS 4.2, ich weiß nicht, ob das auch in anderen neueren Versionen passiert. Ich habe diesen Code innerhalb eines TBAR eines Gitters:ExtJS removeAll funktioniert nicht
{
itemId: 'delete',
text: 'Delete',
iconCls: 'icon-delete',
disabled: true,
handler: function() {
var selection = this.up('grid').getView().getSelectionModel().getSelection()[0];
if (selection) {
var numItems = storeProdutos.data.items.length;
var store = this.up('grid').getStore();
if(numItems != 0) {
// point 2
Ext.Msg.confirm('Confirm', 'Do you want to delete?', function(button){
if(button === 'yes') {
gridProduto.getStore().removeAll();
store.remove(selection);
gridProduto.getStore().clearFilter();
gridProduto.getStore().load();
gridMercado.getSelectionModel().select(0);
}
});
} else {
store.remove(selection);
gridProduto.getStore().clearFilter();
gridProduto.getStore().load();
gridMercado.getSelectionModel().select(0);
}
}
}
}
Wenn ich versuche, löschen sie die messagebox erscheint, und das sage ich ja.
Dann löscht es die store.remove (Auswahl), aber es löscht nicht die gridProduto.getStore.removeAll(). Das Seltsame ist, dass im php delete Skript alles erfolgreich verlaufen ist.
Die seltsamste Sache ist, dass, wenn ich gridProduto.getStore.removeAll() auf Punkt 2 des Codes setzen und alles wieder tun, entfernt esAll erfolgreich!
Ich glaube, es hat etwas mit der Messagebox zu tun.
Weiß jemand wie ich das beheben kann?
PS: Mein Geschäft hat einen Proxy zum Löschen mit Ajax. So etwas wie dieses:
storeProdutos = Ext.create('Ext.data.Store',{
...
proxy: {
type: 'ajax',
api: {
destroy: '/path/someScript.php'
}
}
}
kann ich Lassen Sie autoSync auf "True" und führen Sie eine Synchronisierung durch? – alexandre1985
Ich kann. Ich habe das http://stackoverflow.com/a/32391211/1930275 gefunden – alexandre1985