2010-02-04 5 views

ответ

3

Вы можете использовать getValues(), чтобы вытащить значения, а затем Ext.encode() их и вручную сделать Ext.Ajax.request({}) с этими данными.

+0

Спасибо, это то же самое решение, что и один из приведенных здесь: http://www.extjs.com/forum/showthread.php?p=433863#post433863 –

2

Возможно, вы хотите расширить Ext.form.Action.Submit, чтобы кодировать параметры как JSON вместо кодирования их в теле.

+0

Спасибо за ответ, это, безусловно, Directi я хочу войти, но я только начинаю с ExtJS, и я предпочел бы, чтобы основы работали сначала, прежде чем я начну распространять материал. –

+0

Расширение компонентов очень легко сделать: см. Раздел «Повторно используемый шаблон» в http://www.extjs.com/learn/Manual:Component:Extending_Ext_Components Научитесь расширять сейчас, прежде чем строить слишком много сумасшедшего кода ! –

+0

Это, по-видимому, относится к ExtJS 3.0, но, вероятно, может быть полезным: http://www.yannlaviolette.com/2010/07/extjs-formpanel-sending-json-data.html –

1

Вы можете переопределить Ext.form.Action.Submit.run.

Так же, как это:

Ext.override(Ext.form.Action.Submit, { 
    run: function() { 
     // Your code here 
    } 
}); 
+0

Несмотря на то, что на самом деле это не должно быть обезврежено таким образом, я думаю, что это полезный намек относительно того, в каком направлении двигаться при определении пользовательского действия «Отправить». –

0

Просто поместите в Params

var formData = App.formPanel.getValues(false); 
Ext.net.DirectMethod.request({ 
    url: '/Product/Save', 
    params: formData, 
    success: function(jsonResult){ 
    } 
}); 

или

App.formPanel.submit(); 

Перед настроить всего App.formPanel.url = '/Product/Save'