2 つの ExtJs TreePanel があります。1 つのツリーは完全にロードされ (FLTree と呼びます)、2 つ目は部分的にロードされます (PL ツリーと呼びます)。ユーザーが完全にロードされたツリーのノードをクリックし、そのノードが部分的にロードされたツリーに存在する場合、部分的にロードされたツリーでそのノードの checkchange イベントを発生させたいと考えています。
これは可能ですか?
2 つの ExtJs TreePanel があります。1 つのツリーは完全にロードされ (FLTree と呼びます)、2 つ目は部分的にロードされます (PL ツリーと呼びます)。ユーザーが完全にロードされたツリーのノードをクリックし、そのノードが部分的にロードされたツリーに存在する場合、部分的にロードされたツリーでそのノードの checkchange イベントを発生させたいと考えています。
これは可能ですか?
はい、項目がクリックされたときに発生Ext.tree.Panel
するitemclick
イベントがあります (コントローラーまたはツリーパネルのリスナー プロパティに追加する必要があります。属性は次のとおりです。
someFunctionName: function(treeview, record, item, index, e, eOpts) { ... }
レコード変数から、最初のツリーの選択されたノードから必要なデータを取得できます。
他のツリーパネルを見つけるには、ツリービューで メソッドup()
とdown()
メソッドを使用できます。
var parentContainer = treeview.up('container_xtype[someProperty1=someValue1]');
コンポーネント階層を上に移動できます (両方のツリーパネルを含む親コンテナーを取得します)。
var pLtree = parentContainer.down('treepanel[someProperty2=someValue2]');
2 つのツリーパネルに共通の親がない場合は、
var pLtree = Ext.ComponentQuery.query('treepanel[someProperty2=someValue2]')[0];
一致したコンポーネントの配列を返すグローバル メソッド。ただし、適切なコンポーネントセレクタークエリを使用していることを確認してください (返された配列の長さ == 1 かどうかを確認できます)。
最後に、 HEREpLtree.fireEvent('checkchange', ...);
で説明されている を使用する必要があります。