Si vous regardez à travers la source de cet exemple , il charge les données à partir d'un tableau qui est codé en dur:
Ext.onReady(function(){
var myData = [
['3m Co',71.72,0.02,0.03,'9/1 12:00am'],
['Alcoa Inc',29.01,0.42,1.47,'9/1 12:00am'],
['Altria Group Inc',83.81,0.28,0.34,'9/1 12:00am'],
// ...
['Verizon Communications',35.57,0.39,1.11,'9/1 12:00am'],
['Wal-Mart Stores, Inc.',45.45,0.73,1.63,'9/1 12:00am']
];
myData
est recréé à partir de cette définition statique chaque fois que la page se charge, c'est pourquoi les modifications ne persistent pas entre les actualisations.
Vous devez écrire deux scripts côté serveur (par exemple, des scripts PHP). Un produit des données d'enregistrements non supprimés au format JSON ou XML. L'autre supprime les enregistrements de la base de données par ID.
Voici un tutoriel qui couvre l'écriture du script PHP "getter" et le code Ext JS correspondant pour afficher une grille de données sur les produits technologiques: http://www.devarticles.com/c/a/JavaScript/EXT-JS-Passing-Live-Data/. Cela ne concerne que le premier script (celui qui récupère les données de la base de données et les affiche au format JSON), mais il devrait vous aider à démarrer. Cherchez à surcharger le rappel remove
du magasin avec une fonction qui envoie une requête AJAX au second script (celui qui supprime les enregistrements de la base de données par ID).
votre idée est bonne, mais je veux travailler avec de l'argent et je ne veux pas recharger la base de données chaque fois que je supprime un produit. J'ai aussi une fonction qui sur le clic supprime la ligne de ma base de données mais je ne veux pas recharger la base de données. Si vous avez 10-20 produit c'est OK, mais si vous avez 10.000 ... – cosy
@cosy une suppression ne devrait pas (ou, au moins, pas besoin) provoquer une requery. Si vous faites l'hypothèse que la suppression a fonctionné, ou restaurez l'enregistrement supprimé si la suppression échoue alors @ Kai devrait être bien. – wombleton
Vous pouvez toujours mettre un bouton Save qui enverra une requête AJAX via 'Ext.Ajax.request()' ou en le faisant via 'store.save()'. Assurez-vous juste de mettre 'autoSave' à' false' pour le magasin ou il enregistrera automatiquement les changements. – Tower