4

のボタンがあります。次id = 'someid'の方法で見つけることができますExt.getCmp('someid')...

そのボタンにある種の「extraId」を設定し、「extraId」でそのボタンを見つける方法はありますか?

4

4 に答える 4

15

問題は、アイテムを取得するために検索する場所です。

もう 1 つの方法はitemIdです。

オブジェクト参照が利用できない場合、コンポーネントへの参照を取得する別の方法として itemId を使用できます。Ext.getCmp で ID を使用する代わりに、itemId または ID を取得する Ext.container.Container.getComponent で itemId を使用します。itemId はコンテナーの内部 MixedCollection へのインデックスであるため、itemId はコンテナーに対してローカルにスコープされ、一意の ID を必要とする Ext.ComponentManager との潜在的な競合を回避します。

ソースと詳細ドキュメント: http://docs.sencha.com/ext-js/4-0/#/api/Ext.AbstractComponent-cfg-itemId

ComponentQuery ( wombleton が言及) も良い方法ですが、itemIdほどパフォーマンスが高くない可能性があります。

于 2011-08-17T08:05:53.127 に答える
8

を実行して検索できますExt.ComponentQuery

リンクされたページのコンソールで機能する例:

Ext.ComponentQuery.query('button[text=OK]')

text=OK検索している属性に置き換えることができます。

于 2011-04-26T11:27:05.560 に答える
2

ExtJS 4 API ドキュメントにはアクセスできませんが、3.X 以前のバージョンでは、DOM ID を使用せずにコンポーネントへの参照を取得する方法がいくつかあることは知っています。

コンポーネントがフォームまたはフォーム パネルの一部である場合、findField() というメソッドにアクセスできる必要があります。Basic Form から継承されます。このメソッドは、id、dataIndex、name、または hiddenName を使用して、コンポーネントへの参照を取得できます。

ボタンの検索に使用できる findByType(xtype) というヘルパー メソッドもあります。もう 1 つのオプションは、使用するボタンを拡張して、参照として使用できる固有のプロパティを配置することです。

于 2011-04-26T13:18:27.407 に答える
0

id の代替は itemId であり、それが定義されているコンテナーのスコープに限定されます。したがって、この場合、id の場合のようにグローバルに一意の itemId を定義する必要はありません。コンポーネント クエリを使用して、itemId を持つコンポーネント オブジェクトを取得できます。itemId の使用方法とその利点について投稿したこのリンクに従ってください。 http://jksnu.blogspot.in/2012/11/use-itemid-instead-of-id.html

于 2013-09-16T06:15:20.487 に答える