Comment puis-je obtenir un panneau FormPanel à POST JSON avec ExtJS 3.1.0?
Question
Par défaut, un FormPanel
dans ExtJS 3.1.0 postes de travail les champs de formulaire comme application/x-www-form-urlencoded
lorsque vous appelez la fonction submit ().
Est-il possible de le faire publier à la place JSON?
La solution
Vous pouvez utiliser getValues()
pour tirer les valeurs et les Ext.encode()
et faire manuellement une Ext.Ajax.request({})
avec ces données ainsi.
Autres conseils
Vous voulez probablement étendre Ext.form.Action.Submit
pour coder les params comme JSON au lieu d'URL codant pour eux dans le corps.
Vous pouvez remplacer Ext.form.Action.Submit.run
.
Tout comme ceci:
Ext.override(Ext.form.Action.Submit, {
run: function() {
// Your code here
}
});
Il suffit de mettre dans params
var formData = App.formPanel.getValues(false);
Ext.net.DirectMethod.request({
url: '/Product/Save',
params: formData,
success: function(jsonResult){
}
});
ou
App.formPanel.submit();
Avant de définir un App.formPanel.url = '/Product/Save'
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow