更改卡片布局中的活动项目.ExtJS的

MBU*_*MBU 2 javascript asp.net extjs c#-4.0

我有一个使用卡布局的面板如下:

var cardpanel = new Ext.Panel(
{
    id: 'cardPanel',
    //title: 'Card Layout',
    region: 'center',
    layout: 'card',
    activeItem: 0,
    autoDestroy: false,
    bodyStyle: 'border-top:0px',
    defaults: {
        border: false
    },
    items: [mediaGrid, mappanel],
    tbar: [
        {
            id: 'card-media',
            text: 'Media',
            icon: '/img/silk/images.png',
            width: 50,
            handler: function () {
                //switch to media
            }
        },
        {
            id: 'card-map',
            text: 'Map',
            icon: '/img/silk/map.png',
            width: 50,
            handler: function () {
                //switch to map
            }
        }
    ]
});
Run Code Online (Sandbox Code Playgroud)

评论的部分是我想在卡布局中的两个面板之间切换但我不知道如何做到这一点.我已经尝试过使用setActiveItem,但我总是得到setActiveItem不是一个函数或它只是没有说什么.如何让它切换面板?

Jas*_*wig 8

只有this在处于cardpanel的处理程序中时才能使用.

cardpanel.layout.setActiveItem(0); // to switch to mediaGrid
cardpanel.layout.setActiveItem(1); // to switch to mappanel
Run Code Online (Sandbox Code Playgroud)


Rob*_*ond 7

你需要打电话

this.layout.setActiveItem();
Run Code Online (Sandbox Code Playgroud)

在处理程序和添加

scope: cardpanel
Run Code Online (Sandbox Code Playgroud)

在处理程序定义下.

  • 不要忘记传入要设置为活动项的项(例如`this.layout.setActiveItem(0)`或`this.layout.setActiveItem('componentId')`) (3认同)