ExtJS从同级元素获取价值

问题描述

我正在使用extjs 3.4

我有动态添加到父面板的面板。 我想在点击时捕获迭代器(i)的价值。 该迭代器的值保存在隐藏元素中:

xtype: 'hidden',cls: 'hidden-ID',value: i

因此基本上,单击时我应该可以找到这个兄弟姐妹(也许按类名或类型?)。

但是我真的不知道如何-我一直试图寻找父母,但是从父母那里我找不到孩子。

示例为here

代码

Ext.onReady(function () {

    var eleCatdisplay2 = new Ext.Panel({
        renderTo: Ext.getBody(),height: 350
    });

    for (i = 0; i < 10; i++) {
        eleCatdisplay2.add(new Ext.Panel({
            layout: 'hBox',border: false,style: {
                marginTop: '10px'
            },items: [{
                xtype: 'displayfield',flex: 1,value: 'rowNum__' + i.toString()
            },{
                xtype: 'hidden',value: i
            },{
                xtype: 'panel',flex: 0.3,html: '<div>click to send</div>',listeners: {
                    'render': function (panel) {
                        panel.body.on('click',function () {

                            //here I would like to catch value of i
                            alert('test');

                        });
                    }
                }
            }]
        }));
    }
    eleCatdisplay2.doLayout();

});

解决方法

您还可以在面板的某些自定义属性中存储值:

Ext.onReady(function () {

    var eleCatDisplay2 = new Ext.Panel({
        renderTo: Ext.getBody(),height: 350
    });

    for (i = 0; i < 10; i++) {
        eleCatDisplay2.add(new Ext.Panel({
            layout: 'hbox',border: false,style: {
                marginTop: '10px'
            },items: [{
                xtype: 'displayfield',flex: 1,value: 'rowNum__' + i
            },{
                xtype: 'hidden',cls: 'hidden-ID',value: i
            },{
                xtype: 'panel',flex: 0.3,html: '<div>click to send</div>',somePropertyName: i,listeners: {
                    'render': function (panel) {
                        panel.body.on('click',function () {
                            console.log(panel.somePropertyName);
                        });
                    }
                }
            }]
        }));
    }
    eleCatDisplay2.doLayout();

});
,

解决方案(在显示字段上我添加了cls:“ display-cat-name”):

var cNM = Ext.getCmp(this.up('.hbox-parent').select('.display-cat-name').elements[0].id).value;


 var catId = this.up('.hbox-parent').select('.hidden-ID').elements[0].value;

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...