extjs Ext.js TabPanel -将所选选项卡作为表单参数发送

vybvopom  于 2023-04-11  发布在  其他
关注(0)|答案(1)|浏览(103)

如何发送(作为一个html表单参数)提交时选择了哪个选项卡?目前我已经隐藏了表单元素,我将其值设置为tab value,这就是我如何在服务器端识别数据提交时哪个选项卡是活动的,但在我看来应该有一个更简单的方法(一些TabPanel参数)。
下面是我用JS动态设置的表单隐藏参数upit

function selectTab(tab){
    document.forms[0].upit.value = tab.value;
}

Tm.Report.createForm(
{
    items:
    [
        new Ext.form.TextField(
        {
            name: 'upit',
            value: '0',
            hidden: true
        }),
        
        new Ext.TabPanel(
        {
            activeTab: 0,
            items:
            [
        
                //TAB0
                {
                    listeners: {activate: selectTab},
                    value: 0,
                    items:
                    [
                       //...tab content
                    ]
                },
            
                //TAB1
                {
                    listeners: {activate: selectTab},
                    value: 1,
                    items:
                    [
                      //...tab content
                    ]
                }

            ]
        })
cotxawn7

cotxawn71#

尝试为您的组件使用itemId,例如:

new Ext.TabPanel(
    {
        activeTab: 0,
        itemId: 'reportForm',
        items:
        [
    
            //TAB0
            {
                listeners: {activate: selectTab},
                value: 0,
                itemId: 'TAB0',
                items:
                [
                   //...tab content
                ]
            },
        
            //TAB1
            {
                listeners: {activate: selectTab},
                value: 1,
                itemId: 'TAB1',
                items:
                [
                  //...tab content
                ]
            }

        ]
    });

然后,您可以使用以下命令获取选项卡名称:

var tabPanel  =  Tm.report.down('#reportForm'),
     activeTab = tabPanel.getActiveTab(),
         tabId = activeTab.get('itemId');

相关问题