2010-12-13 26 views
0

Je dois enregistrer des données et retourner l'ID créé dans la base de données SQL 2005. J'ai besoin de l'ID pour passer à un autre objet avant de l'enregistrer afin que je puisse les associer correctement.ExtJS - Obtention de l'ID de l'enregistrement qui vient d'être enregistré

Quelle est la meilleure façon d'y parvenir avec Ext? Y a-t-il quelque chose intégré dans le cadre qui rend cela aussi simple?

Merci.

   function AddPromotionType() { 
       var currentDate = new Date(); 
       var newTypeJsonObject = { 
        promotionTypeId: '0', 
        promotionType: Ext.getCmp('txtPromoType').getValue(), 
        updatedBy: userid, 
        updateDate: currentDate 
       } 

       // serialize our service object 
       var newLevelJsonData = Ext.encode(newTypeJsonObject); 

       // call the web service and pass over our service object 
       Ext.lib.Ajax.defaultPostHeader = 'application/json'; 
       Ext.Ajax.request({ 
        url: 'Service/AddPromoType', 
        method: 'POST', 
        params: newLevelJsonData, 
        success: function(response, options) { 
         AddTypeWindow.destroy(); 
         AddTypeWindow.hide(); 

         // refresh dropdown to reflect new data 

         Ext.getCmp('newPromoType').getStore().reload();       
        }, 
        // if data fails to save, show message 
        failure: function(response, options) { 
         Ext.MessageBox.alert('Error saving new promotion type', response.responseText); 
        } 
       }); 
      } 

Répondre

1

En supposant que votre serveur renvoie les données mises à jour avec le nouvel identifiant, le paramètre de réponse de votre rappel de succès devrait le contenir. Lorsque vous utilisez les fonctions intégrées aux magasins qui automatisent les appels Ajax (Ext Direct, API REST, etc.), l'ID est automatiquement mis à jour sur l'enregistrement approprié et vous pouvez gérer l'événement add du magasin pour inspecter l'enregistrement. Cependant, puisque vous faites un appel Ajax manuel, c'est à vous d'inspecter votre réponse si vous avez besoin de l'identifiant immédiatement.

+0

D'accord c'est côté serveur et non côté client. – Darren

+0

Génial. Merci pour la clarification. Je vais devoir ajuster le proc pour repasser la valeur d'enregistrement et le C# aussi. – PixelMuse