ExtJS4如何给同一个formpanel不同的url

  formpanel可以这样使用,api上的例子:

  

复制代码 代码如下:

  var panel=Ext.create('Ext.form.Panel', {

  title: 'Simple Form',

  bodyPadding: 5,

  width: 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

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