0

FormPanel 上有几个选项卡:

在此处输入图像描述

代码:

var podform = new Ext.FormPanel({
 labelAlign: 'left',
 id: 'tab_6',
 frame:true,
 title: 'Договоры подряда',
 bodyStyle:'padding:5px 5px 0',
 width: 600,
 listeners: {
'activate' :  function(podform,records,options) {
       console.log("store:"+store_form);
    this.loaded = true;
    var record = store_form.getAt(0);
    podform.getForm().loadRecord(record);
}
 },
 reader : new Ext.data.XmlReader({
record : 'zem',
//      success: '@success'
}, [
  ]),
 items: []
});

podform.add(tabs_pod);

现在我尝试将数据提交到服务器:

    podform.addButton({
    text: 'Submit',
    //disabled:true,
    handler: function(){
        podform.getForm().submit({
            url:url_servlet+'submit.jsp',
            waitMsg:'Saving Data...',
            success: function(form, action) {
                Ext.Msg.show({
                 title:'Success'
                ,msg:'Form submitted successfully'
                ,modal:true
                    ,icon:Ext.Msg.INFO
                ,buttons:Ext.Msg.OK
                });
            }
        });
    }
});

但是萤火虫说我只用我见过的面板提交数据。这意味着如果我不单击第二个选项卡,我将无法从中获取数据。
有可能修复它吗?

更新

当我使用deferredRender:false,第一个选项卡时显示正常,但另一个选项卡看起来像这样:

在此处输入图像描述

4

1 回答 1

2

我认为您看到的问题是选项卡面板由于延迟渲染而没有渲染非活动选项卡中的字段 - 一种性能增强技术。您可以尝试使用显式强制渲染这些子面板deferredRender:false

在此处查看完整文档

ExtJS 3.4 -> http://docs.sencha.com/ext-js/3-4/#!/api/Ext.TabPanel-cfg-deferredRender

ExtJS 4.1 -> http://docs.sencha.com/ext-js/4-1/#!/api/Ext.tab.Panel-cfg-deferredRender

于 2012-11-19T05:57:04.750 回答