如何获取段按钮而不使用其在sencha touch中的ID?

时间:2014-03-03 16:11:53

标签: html5 extjs4 sencha-touch sencha-architect sencha-touch-2.2

Code:

     items: [{
            xtype: 'segmentedbutton',
            disabled: true,
            //id:'segmentWidget',
                    items: [
                        {
                            text: 'text1',
                            flex: 1,
                        },
                        {
                            text: 'text2',
                            flex: 1
                        },
                        {
                            text: 'text2',
                            flex: 1
                        }
                    ]

        }]

Ext.getCmp( 'segmentWidget')setPressedButtons(0);

如何在不使用ID的情况下执行此操作

由于

1 个答案:

答案 0 :(得分:0)

如果您不想使用id来选择Sencha中的组件(并且最好在可能的情况下保持可重用性并避免污染全局ID空间),您有几种选择。

粗体部分来自Sencha文档,其余部分来自我的)

  1. Ext.Container.getComponent()方法:检查此容器的items属性并获取此容器的直接子组件。基本上你传入的字符串应该与该容器中id之一的itemIditems属性相匹配。

  2. Ext.Container.query()方法:检索与传递的选择器匹配的所有后代组件。使用此容器作为其根执行Ext.ComponentQuery.query。这将返回Ext.Component的数组。查看Ext.ComponentQuery.query个文档,了解您可以执行哪些查询。简而言之,您只需按xtype选择,在您的情况下,您可以执行:fatherComponent.query('segmentedbutton')[0]或其他属性,例如:fatherComponent.query('[text=text1]')[0]

  3. Ext.Component.up()方法:向上走动ownerCt轴,寻找与传递的简单选择器相匹配的祖先容器