Extjs 4如何获取父组件的ID? [英] Extjs 4 How to get id of parent Component?

查看:186
本文介绍了Extjs 4如何获取父组件的ID?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有多个字段集.并且在Extjs 4的每个字段集中都有Button. 我想获取按钮单击事件的字段集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.
      }
     }]
    }

谢谢, 库纳尔

  Actual Code:

  Ext.define('My.Group',{   
xtype : 'fieldset',
 config: {
     title:'Group' + i.toString(),
     id : '_group' + i.toString()       
 },
     constructor: function(config) {
     this.initConfig(config);

   return this;
 },

collapsible : true,
frame : false,
boder : false,
items : [ {
xtype : 'button',
text : 'Add KeyWord',
id: 'btn',
width : 100,
handler : function(button,event) {

     var fieldset = button.findParentByType('fieldset');
     var fieldsetsID = fieldset.getId();

    console.log(fieldset);

    Ext.getCmp(fieldsetId).insert(2, rangeField);
    Ext.getCmp(fieldsetsID).doLayout();
}

 }, {
 xtype : 'button',
 text : 'Add Range Type',
 width : 100
} ]
});

并且我在单击按钮时调用此功能

 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();  

解决方案

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

在这种情况下,请尝试以下操作:

I have multiple fieldset. And have Button inside each fieldset in Extjs 4. I want to get fieldset id on the button click event, so that i can know from which fieldset the button was clicked

How do i get this?

    {
     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.
      }
     }]
    }

Thanks, Kunal

  Actual Code:

  Ext.define('My.Group',{   
xtype : 'fieldset',
 config: {
     title:'Group' + i.toString(),
     id : '_group' + i.toString()       
 },
     constructor: function(config) {
     this.initConfig(config);

   return this;
 },

collapsible : true,
frame : false,
boder : false,
items : [ {
xtype : 'button',
text : 'Add KeyWord',
id: 'btn',
width : 100,
handler : function(button,event) {

     var fieldset = button.findParentByType('fieldset');
     var fieldsetsID = fieldset.getId();

    console.log(fieldset);

    Ext.getCmp(fieldsetId).insert(2, rangeField);
    Ext.getCmp(fieldsetsID).doLayout();
}

 }, {
 xtype : 'button',
 text : 'Add Range Type',
 width : 100
} ]
});

and i am calling this function on button click

 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();  

解决方案

I've implemented handler properly.

{
    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();
        }
    }]
}

In that case try this:

button.up("[xtype='fieldset']")

这篇关于Extjs 4如何获取父组件的ID?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆