Reference ExtJs 4对网格中工具栏按钮的引用

Reference ExtJs 4对网格中工具栏按钮的引用,reference,extjs4,toolbar,Reference,Extjs4,Toolbar,我想在控制器内定义一个ref,以便在选择更改时启用/禁用delete Builton。但是我没有理解正确,因此getDelButton()方法提供了未定义的。请帮忙 控制器: refs:[ { ref: 'tabPanel', selector: 'viewport > tabPanel' }, { ref: 'grid', selector: 'tabPanel > usermanagementgrid' }, { ref: 'delButto

我想在控制器内定义一个ref,以便在选择更改时启用/禁用delete Builton。但是我没有理解正确,因此getDelButton()方法提供了未定义的。请帮忙

控制器:

 refs:[
      { ref: 'tabPanel', selector: 'viewport > tabPanel' },
      { ref: 'grid', selector: 'tabPanel > usermanagementgrid' },
      { ref: 'delButton', selector: 'grid > button #delete'}
],

视图定义:

dockedItems: [{
        xtype: 'toolbar',
        items : [ {
            xtype: 'button',
            id: 'delete',
            iconCls: 'drop-add',
            text: 'Add',
            tooltip: 'Press to add a new user.',
            action: 'addUser',
            scope: this,
        },

提前感谢…

我遇到了一个类似的问题,原来是网格选择器,通常选择器使用xtype,网格有网格或网格面板。尝试使用选择器:“gridpanel>按钮#delete”检查属性。

选择器可能有3个问题:

  • 组件和id选择器之间不应该有空格。使用:
    按钮#删除
  • 正如nscrob提到的,您可能需要使用
    gridpanel
    而不是
    grid
  • 按钮
    不是
    网格
    的直接子项。在这种情况下,它很可能是
    工具栏
    的直接子级。这意味着您必须执行类似的操作:
    gridpanel>toolbar>按钮#删除
    gridpanel按钮#删除
  • 参考上面的#3,
    选择器表示父级的直接子级。这意味着字面上是父对象的子对象,而不仅仅是嵌套链中的某个组件。如果您只想在
    gridpanel
    中拉一个按钮,请使用
    gridpanel按钮
    。这将搜索所有
    gridpanel
    的子项,并在所有这些子项中查找任何匹配
    按钮的内容。但是,请注意,以这种方式使用它将返回
    gridpanel
    中的所有按钮(当然,除非您指定id)

    最后,在firebug中使用控制台将极大地帮助您。打开firebug,在控制台中可以运行命令。因此,加载网格并运行以下命令:
    Ext.ComponentQuery.query('gridpanel>toolbar>button#delete')
    并查看返回的内容。这样,您就不必反复查看代码和刷新浏览器窗口。请记住,
    query()
    返回一个数组。

    +1获得完整答案。但我认为#2不是原因。否则sencha在使用refs部分会有无效的例子。我无论如何都不是ExtJS大师。但是,当我尝试在Ext.ComponentQuery.query()中使用选择器时,除非使用gridpanel vs grid,否则它将无法工作。我很好奇为什么,如果我弄明白了,我会把它贴在这里。谢谢你的+1!请接受回答,如果您没有得到所需的内容,请添加评论。
    dockedItems: [{
            xtype: 'toolbar',
            items : [ {
                xtype: 'button',
                id: 'delete',
                iconCls: 'drop-add',
                text: 'Add',
                tooltip: 'Press to add a new user.',
                action: 'addUser',
                scope: this,
            },