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
                });
            }
        });
    }
});

しかし、firebug は、私が見たパネルのみでデータを送信すると言っています。2番目のタブをクリックしないと、そこからデータを取得できません。
それを修正することは可能ですか?

アップデート

最初のタブを使用すると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 に答える