如何使按钮在网格中不可见和可见?

时间:2013-06-25 21:58:13

标签: javascript extjs extjs4.2

我有以下JavaScript代码。使用ExtJS我的网格中有docked button,我想在网格为空时让它不可见。

var grid = Ext.create('Ext.grid.property.Grid', 
{
    // width: '100%',
    // height: '100%'
    dockedItems:
    [{
        xtype: 'toolbar',
        id: 'save_t',
        dock: 'bottom',
        ui: 'footer',
        items: ['->', 
        {
            text: 'Save',
            handler: function() 
            {
                // get values
                var gridvalues = this.up('propertygrid').getSource();

                alert(gridvalues.Version);
                // send AJAX request
                Ext.Ajax.request({
                    url: '../php/updateVars.php?v=' + JSON.stringify(gridvalues),
                    success: function(response) 
                    {
                        var obj = JSON.parse(response.responseText);
                        // alert(Object.prototype.toString.apply(obj));                     
                    },
                    failure: function(response) 
                    {
                        alert('server-side failure with status code ' + response.status);
                    }
                }); 
            }
        }]
    }]
});

正如您所看到的,网格没有来源。我想保留Save按钮的代码,但在设置源代码之前不要显示:grid.setSource("data")

在其他一些功能中,我会获得data并将其设置为grid's source,然后我想让按钮可见。谢谢

1 个答案:

答案 0 :(得分:0)

您应该为初始配置将按钮定义为hidden,并为其指定itemId

{
    text: 'Save',
    itemId: 'saveButton',
    hidden: true,
    handler: function() { ... }
}

然后,当您准备好展示它时,您可以使用它:

grid.down('#saveButton').show();