私のアプリケーションにはカスタム アイテム レンダラーを備えたツリーがあり、リーフのデータの種類に応じて、さまざまなコンポーネントをエディターとして使用します。あるケースでは、ユーザーがニーズに合った行を選択できるようにデータグリッドを使用しようとしています (複数の列を表示する必要があります)。ComboBox と概念が似ています。
これを行うには、データグリッドを動的に作成し、ポップアップ マネージャーを使用して (モーダル) ポップアップとして表示する「itemEditBegin」(ツリー用) のハンドラーとして関数を割り当てます。ここまでは順調ですね。
ただし、どこかをクリックすると (たとえば、データグリッドのスクロール ダウン ボタン)、itemEditEnd イベントが発生するため、ポップアップが消えます。
別のシナリオでは、エディターとして DateField をセットアップしており、ユーザーはアイコンをクリックして DateChooser を表示したり、月をスクロールしたりできます。私のコードとまったく同じ方法で!
「itemEditBegin」コードは次のとおりです。
dataGrid = new DataGrid();
dataGrid.dataProvider = mddTable.dataCollection;
dataGrid.editable = false;
PopUpManager.addPopUp(dataGrid, this, true);
ここで、「this」はツリー レンダラーが行に対して使用するコンポーネントです。データグリッド内の何かがクリックされるとすぐに呼び出されるのは、ツリー コンポーネントの「itemEditEnd」ハンドラーです (例: 行、スクロール ダウン ボタン、列区切りなど)。
アイデアはありますか?
ありがとう、
マイク。