Extjs4 Extjs 4如何获取父组件的id?

Extjs4 Extjs 4如何获取父组件的id?,extjs4,Extjs4,我有多个字段集。在Extjs 4中的每个字段集中都有一个按钮。 我想获取按钮单击事件的字段集id,这样我就可以知道按钮是从哪个字段集单击的 我怎么得到这个 { xtype:'fieldset', id:'fs1', items:[{ xtype:'button', id:'b1', handler:function(){ // here i want to get fieldset's id because bec

我有多个字段集。在Extjs 4中的每个字段集中都有一个按钮。 我想获取按钮单击事件的字段集id,这样我就可以知道按钮是从哪个字段集单击的

我怎么得到这个

    {
     xtype:'fieldset',
     id:'fs1',
     items:[{
     xtype:'button',
     id:'b1',
     handler:function(){
       // here i want to get fieldset's id because because fieldset and button were added dynamically.
      }
     }]
    }
谢谢, 库纳尔

我在点击按钮时调用这个函数

 handler : function() {
        i=i+1;
        var group = new My.Group({
            title:'Group' + i.toString(),
            id : '_group' + i.toString()                
        });

        console.log(group);
        Ext.getCmp('_aspanel').insert(i, group);                
        Ext.getCmp('_aspanel').doLayout();  
请注意,一旦有了
字段集
变量,就可以直接将项目添加到此容器中,而无需使用其ID

我已经正确地实现了处理程序。

{
xtype:“字段集”,
id:'fs1',
项目:[{
xtype:“按钮”,
id:'b1',
处理程序:函数(btn){
//检索字段集。
var fieldset=btn.up('fieldset');
//检索字段集的Id。
var fieldsetId=fieldset.getId();
}
}]
}

在这种情况下,请尝试以下方法:

button.up(“[xtype='fieldset']”)

我想通过按钮访问字段集的id。因为我有多个字段集。我想在点击按钮的特定字段集中添加一些东西。未捕获的TypeError:无法调用UndefinedIt的方法'getId',这有点奇怪。我已经更新了上面的代码。您也可以尝试使用
findParentByType('container')
。错误显示字段集未定义,因此无法工作。我也尝试过使用容器,但在这种情况下,我得到了面板的id,我在其中添加了字段集。现在真的很奇怪。这意味着您的
Ext.form.FieldSet
没有扩展
Ext.container.container
。。。它显然应该。。。请写出您使用的ExtJS的确切版本。我会在几个小时后给你回复。@Kunal:我已经用我刚刚在ext4.0.1和4.0.2中测试过的代码更新了上面的代码。它在这两种情况下都能正常工作。看看你是否能在一个单独的文档中使用它。如果是,则表示有其他东西干扰了您提供的代码。如果没有。。。那么我不知道发生了什么。是的,
Ext.AbstracComponnent.up()
使用不同的方法查找层次结构中更高的组件。我想知道当
findParentByType
不起作用时,它是否能起作用。当然,它能起作用,我已经测试过它,并且在extjs4中开发时正在使用它。这很好。我已经在我的答案中测试了代码,它很有效,我也在我的工作中使用它,但是Kunal有一些问题。谢谢Mchl和Zango。我已经尝试了你的代码和它的工作很好。但是现在我发现在我的例子中,字段集没有扩展。当我访问fieldset时,我得到的是未定义的。我把我的实际代码。“请帮我看看这有什么问题。@Kunal我也有同样的疑问,如果你有闲聊的话。”
 handler : function() {
        i=i+1;
        var group = new My.Group({
            title:'Group' + i.toString(),
            id : '_group' + i.toString()                
        });

        console.log(group);
        Ext.getCmp('_aspanel').insert(i, group);                
        Ext.getCmp('_aspanel').doLayout();  
Ext.onReady(function() {
  var panel = Ext.create('Ext.panel.Panel', {
      items:  {
        xtype:'fieldset',
        id:'fs1',
        items:[{
          xtype:'button',
          id:'b1',
          handler:function(b,e){
            var fieldset = b.findParentByType('fieldset');
            var fieldsetID = fieldset.getId();
            console.log(fieldsetID);
          }
        }]
      },
      renderTo: document.body
  });
});
{ xtype:'fieldset', id:'fs1', items:[{ xtype:'button', id:'b1', handler:function(btn){ // Retrieve fieldset. var fieldset = btn.up('fieldset'); // Retrieve Id of fieldset. var fieldsetId = fieldset.getId(); } }] } button.up("[xtype='fieldset']")