ExtJS4 给同一个formpanel不同的url

formpanel能够这样使用,api上的样例:

 var panel=Ext.create('Ext.form.Panel', {
    title: 'Simple Form',
    bodyPadding: 5,
     350,

    // 将会通过 AJAX 请求提交到此URL
    //url: 'save-form.php',

    // 表单域 Fields 将被竖直排列, 占满整个宽度
    layout: 'anchor',
    defaults: {
        anchor: '100%'
    },

    // The fields
    defaultType: 'textfield',
    items: [{
        fieldLabel: 'First Name',
        name: 'first',
        allowBlank: false
    },{
        fieldLabel: 'Last Name',
        name: 'last',
        allowBlank: false
    }],

    // 重置 和 保存 按钮.
    buttons: [{
        text: '重置',
        handler: function() {
            this.up('form').getForm().reset();
        }
    }, {
        text: '保存',
        formBind: true, //only enabled once the form is valid
        disabled: true,
        handler: function() {
            var form = this.up('form').getForm();
            if (form.isValid()) {
                form.submit({
                    success: function(form, action) {
                       Ext.Msg.alert('保存成功', action.result.msg);
                    },
                    failure: function(form, action) {
                        Ext.Msg.alert('操作失败', action.result.msg);
                    }
                });
            }
        }
    }],
    renderTo: Ext.getBody()
});

再看API,formpanel居然没有url的配置,也没有获得api的函数。。想来应该是formpanel的父类的參数。

后来去看了看ext.form.basic,果然有url配置项。。

在Ext中FormPanel并中并不保存表单数据,当中的数据是由BasicForm保存,在提交表单的时候须要获取当前FormPanel中的BasicForm来进行提交. 

 在获取BasicForm对象后便可进行表单的提交操作



由于要在项目中要用到2个组件。这2个组件唯一的区别是提交的url不一样,故我在定义组件时未定义url这一项


然后在组件加入到不同容器时顺便把不同的url也给上,以上面那个样例为例


在须要的地方

panel.getForm().url='../LogSelectServlet';//在不同的地方能够像这样赋值不同的URL

这样的方法对于组件的重用是一个不错的方法。。



原文地址:https://www.cnblogs.com/jzssuanfa/p/6746905.html