問題タブ [itemrenderer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
apache-flex - コンボボックスに表示されたアイテムの Flex カスタム アイテム レンダラー
コンボボックスでカスタム アイテム レンダラーを使用して、デフォルトのテキスト ラベルの代わりにカスタム描画を表示しています。
これはドロップダウン リストでは正常に機能しますが、表示される項目 (リストが閉じられている場合) は、オブジェクトのテキスト表現のままです。
表示されたアイテムをドロップダウンと同じ方法でレンダリングする方法はありますか?
apache-flex - Flex dataGrid itemRenderer、セルの幅と高さにアクセス
カスタム itemRenderer を作成するとき、それがレンダリングされるグリッド セルの高さと幅をどのように参照しますか? グリッドのサイズが変更されたときに正しくサイズ変更されるようにします。
テーブルの最終列に棒グラフを描画する dataGrid itemRenderer を作成しています。
「this」、「this.parent」、および他のいくつかのものを参照しようとしましたが、成功しませんでした。私の暫定的なハック ソリューションは、このデータをデータ コレクションに追加することですが、これはグリッドのサイズが変わると機能しないため、毎回編集する必要があります。
apache-flex - 別の itemRenderer のアクションに基づいて itemRenderer の State を変更するにはどうすればよいですか?
Box コンポーネントを拡張する ItemRenderer を持つ DataGridColumn があります。デフォルトの表示は Text コンポーネントです。ユーザーがテキスト コンポーネントをクリックすると、State を変更して PopUpMenuButton の子を追加し、Text コンポーネントを非表示にします。これはうまくいきます。ただし、一度に 1 つの PopUpMenuButton のみを DataGrid に表示できるようにしたいと考えています (itemEditor の動作と同様)。このインスタンスでそれを機能させようとしてあまりにも多くの問題に遭遇したため、itemEditor を使用したくありません。
所有者 (DataGrid) を取得する listData プロパティにアクセスするために、itemRenderer に IDropInListItemRenderer を実装していますが、DataGrid 内の他の itemRenderer の「編集」状態を「オフ」にする方法がわかりません。
どうすればこれを達成できますか?
ありがとう。
apache-flex - 問題を引き起こす DataGrid の 1 行目の RadioButton - Adobe Flex
itemRenderer を使用して、1 つの列に RadioButtons を含む DataGrid があります。DataGrid は、ユーザーがボタンをクリックするたびに作成およびポップアップされる TitleWindow に常駐します。DataGrid の dataProvider は ArrayCollection であり、RadioButton は、ウィンドウと DataGrid が表示されるときに、各 ArrayCollection アイテムのブール値に基づいて選択されるかどうかが決定されます。ユーザーが DataGrid 内の別の RadioButton をクリックすると、ArrayCollection 項目が新しいブール値で更新されます。
問題は、最初の行の RadioButton が選択された値を保持していることにあります。他のすべての行に RadioButton がある場合、TitleWindow と DataGrid が表示されると、ArrayCollection 内のアイテムのブール値に基づいて正しい RadioButton が選択されます。ただし、最初の行の RadioButton を選択する必要がある場合は、そうではありません。RadioButton の valueCommit イベントのリスナーをセットアップしたところ、興味深い結果が得られました。最初の行を除くすべての行の RadioButton の valueCommit が 1 回だけ発生し、選択された値が true になります。ただし、最初の行の RadioButton が選択されるべきものである場合、 valueCommit は5 回発生し、最初の 3 回は選択された値を true として報告し、最後の 2 回はそれを false として報告します。
これに関するヘルプは大歓迎です。同様のバグが報告されていますが、回避策はありません。
UPDATE 12/18/08 OK、valueCommit は 5 回起動され、4 回目は false であり、5 回目の false は false であり、実際にはデータのインデックス 2 に常に対応しています。したがって、最初の RadioButton を 4 回報告し、最後の回は false であり、5 回目はインデックス 2 を false として報告します。変!
apache-flex - Flexデータグリッドをデータに適合させる
0〜100の間で変化する可能性のあるテキストデータの行があり、すべてを一度に画面に表示する必要があります。デフォルトの動作は、行*rowHeight>gridHeightまでグリッドに適しています。
基本的に、グリッドの高さに基づいて計算するには、アイテムの高さ、つまり行の高さへのフックが必要です。paddingTopとpaddingBottomをゼロに設定しましたが、行の間にかなりの量の空白が残っています。
私のデータグリッドコンポーネント...
setRowHeight()は役立ちますが、行の高さを10のように設定すると、セルのitemRenderがセルよりも大きくなります。
apache-flex - 奇妙なItemRendererの動作
ItemRendererに本当に奇妙な問題があります。ViewStackを備えたmain.mxmlコンテナーがあります。ユーザーがログインすると、初期ビューにはAdvancedDataGrid(一部のデータと以下のItemRendererが含まれます)が含まれ、[削除]ボタンが表示されます。ユーザーがログインすると、このAdvancedDataGridはデータベースから自動的に更新されます。[削除]ボタンは、ユーザーのロールメンバーシップに基づいて有効または無効にする必要があります。
シナリオ1(管理者としてログイン):
- 管理者ユーザーがログインします-データグリッドビューがすぐに表示され、すべての行で[削除]ボタンが適切に有効になります
- ログアウト
- 非管理者ユーザーとしてログイン-データが更新され、1つを除くすべての行が引き続き有効になります。これは、1行目、2行目、または3行目である可能性があり、完全にランダムです。それは本当に奇妙です。。。
ブラウザを再起動し、シナリオ2に従います。。。
シナリオ2(非管理者としてログイン):
- 管理者以外のユーザーがログインします-データグリッドビューがすぐに表示され、すべての行で[削除]ボタンが適切に無効になります
- ログアウト
- 管理者ユーザーとしてログイン-1つを除いて、すべての行が引き続き無効になっています。これは、1行目、2行目、または3行目である可能性があり、完全にランダムです。最初のシナリオのちょうど逆です。
興味深い事実-checkDeleteSecurityにブレークポイントを設定すると、最初のユーザーがログインし、DATAGRIDが最初に更新されたときにのみブレークポイントに到達します。ログアウトして次のユーザーがログインすると、データグリッドは更新されますが、checkDeleteSecurityブレークポイントがキャッチされることはありません。
apache-flex - Flex - パラメータをカスタム ItemRenderer に送信しますか?
Flex Datagrid で財務データを色分けするために達成しようとしていること - 正の場合は緑。マイナスなら赤。色を付けたい列が dataProvider の一部である場合、これはかなり簡単です。代わりに、dataProvider の一部である他の 2 つの列に基づいて計算しています。ItemRenderer で再度計算できるので、これはかなり簡単ですが、計算の別の部分は textBox の値に基づいています。したがって、私ができる必要があると思うのは、textBox の値をカスタム ItemRenderer に送信することですが、その値はメインの MXML アプリケーションに格納されているため、アクセスする方法がわかりません。パラメータとして送信するのが最善の方法のように思えますが、おそらく別の方法があります。
これが私の ItemRenderer の現在のコードです。
(data.AvailableFunding は存在しません)
それで、私がこれを達成する方法を知っている人はいますか?
apache-flex - flex3とitemRenderers
データグリッドがあり、列の1つにアイテムレンダラーを使用してコンテンツを表示しています。itemRendererのスクリプトブロック内のデータグリッドのデータプロバイダーコンテンツにアクセスできるのだろうか。
現在、data.variableNameを使用して、アイテムレンダラーのコンポーネントのデータプロバイダーにアクセスできます。
スクリプトブロックのこの変数でエラー処理を実行できるようにしたいのですが、何かアイデアはありますか?
apache-flex - データグリッドの最初の行のitemRendererが2回インスタンス化/追加/初期化などを行わないようにするにはどうすればよいですか?
Flex DataGridの最初の行では、itemRendererが2回初期化されます。結果をトレースすると、フレックスフレームワークが最初の行のitemRendererの2つのインスタンスを作成している可能性があることがわかります。itemRendererにデータバインドされたColorPickerが含まれている、より複雑なアプリケーションでは、この問題が原因で無限ループが発生します。最初の行のitemRendererのみが2回初期化されます。flexの動作をオーバーライドして、これが発生しないようにする方法はありますか?次のコードは問題を示しています。
主な用途:
SimpleItemRenderer:
省略された出力:
initialize:event.target = ItemRenderers0.dg ... SimpleItemRenderer12.textInput、null initialize:event.target = ItemRenderers0.dg ... SimpleItemRenderer24.textInput、null createdComplete:event.target = ItemRenderers0.dg ... SimpleItemRenderer24.textInput、アイテム1initialize:event.target = ItemRenderers0.dg ... SimpleItemRenderer29.textInput、null CreationComplete:event.target = ItemRenderers0.dg ... SimpleItemRenderer29.textInput、アイテム2creationComplete:event.target = ItemRenderers0.dg ... SimpleItemRenderer12 .textInput、アイテム1