gpt4 book ai didi

javascript - 如何从 initcomponent 中隐藏工具栏项

转载 作者:行者123 更新时间:2023-12-03 08:36:06 25 4
gpt4 key购买 nike

我在 ExtJs 工具栏中有一个按钮,如下所示

Ext.define('Member.view.members.MembersGrid', {
extend: 'Ext.grid.Panel',
alias: 'widget.membersGrid',
id: 'membersGrid',
cls: 'custom-grid',

requires: [],

viewConfig : {

enableTextSelection: true
},

frame: true,
store: '',
//id: 'transGrid',
height: 150,

columns: [
{
xtype: 'rownumberer'

},

{
hidden:true,
width: 10,
dataIndex: 'id',
text: 'id'
},

/*{
width: 100,
//flex: 1,
dataIndex: 'member_number',
text: 'Member Number'
},*/

{
width: 150,
flex: 1,
dataIndex: 'member_names',
text: 'Member Names'
}],

dockedItems: [
{
xtype: 'toolbar',
itemId: 'toptoolbar',
id:'toptoolbar',
flex: 1,
dock: 'top',
items: [

{
xtype: 'button',
text: 'Pin_Reset',
id: 'pinReset',
itemId: 'pinReset',
iconCls: 'pin_reset'
}

]
}
],

initComponent: function() {

Ext.getCmp('pinReset').hidden = true;

this.callParent();

}
});

我希望按钮在渲染后显示为隐藏。我认为 Ext.getCmp('pinReset').hidden = true;就可以了,因为我已经为按钮分配了一个 id。在 Chrome 开发者工具上收到以下错误“无法设置未定义的‘隐藏’属性”。

Extjs版本:5.1

最佳答案

initComponent 在渲染之前被调用。因此它无法找到按钮。您可以使用 'afterrender' 事件代替。

添加以下代码而不是initComponent:

listeners:{
afterrender: function() {
Ext.getCmp('pinReset').hidden = true;
}
}

工作代码:

Ext.application({
name : 'Fiddle',

launch : function() {
Ext.create('Ext.grid.Panel', {
alias: 'widget.membersGrid',
id: 'membersGrid',
cls: 'custom-grid',
renderTo:Ext.getBody(),
requires: [],

viewConfig : {

enableTextSelection: true
},

frame: true,
store: '',
//id: 'transGrid',
height: 150,

columns: [
{
xtype: 'rownumberer'

},

{
hidden:true,
width: 10,
dataIndex: 'id',
text: 'id'
},

/*{
width: 100,
//flex: 1,
dataIndex: 'member_number',
text: 'Member Number'
},*/

{
width: 150,
flex: 1,
dataIndex: 'member_names',
text: 'Member Names'
}],

dockedItems: [
{
xtype: 'toolbar',
itemId: 'toptoolbar',
id:'toptoolbar',
flex: 1,
dock: 'top',
items: [

{
xtype: 'button',
text: 'Pin_Reset',
id: 'pinReset',
itemId: 'pinReset',
iconCls: 'pin_reset'
}

]
}
],

listeners:{
afterrender: function() {

Ext.getCmp('pinReset').hidden = true;


}
}
});
}
});
<link rel="stylesheet" href="https://extjs.cachefly.net/ext-4.1.1-gpl/resources/css/ext-all.css">
<script type="text/javascript" src="https://extjs.cachefly.net/ext-4.1.1-gpl/ext-all-debug.js"></script>

关于javascript - 如何从 initcomponent 中隐藏工具栏项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33215140/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com