0

説明は基本的にタイトルと同じです。これは私が少し前に作成した関連記事です:なぜ画像ベースの itemRenderer が常に表示されるのですか? 基本的に、この場合の itemRenderer の列に使用されている dataField は「進行中」であり、その行の進行中の値に応じて、itemRenderer および/またはそのイメージを true または false に設定したいと考えています。itemRenderer がラベルベースの場合、それに応じてテキストを異なる値に設定できます。ただし、visible などの特定の特定のプロパティには問題があります。私がこれまでに見つけた状態の使用に関するドキュメントは、理解するのが非常に難しく、それらがここに適用されるかどうかさえわかりません。どうすればいいですか?ちなみに、現在のコードは次のとおりです。

<mx:DataGridColumn dataField="ongoing" id="ongoing" headerText="">
<mx:itemRenderer>
    <mx:Component>
        <mx:Image source="logo.jpg">
            <mx:Script>
                <![CDATA[
                    override public function set data(value:Object):void {
                        super.data = value;
                        super.visible = (value.ongoing != 'False');
                    }
                ]]>
            </mx:Script>
        </mx:Image>
    </mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>

また、設定された可視オーバーライドを使用してみました。ありがとう!

4

2 に答える 2

0

特にデータグリッドでは意味がありません。データを表示したくない場合は、コレクションのフィルター関数を使用してフィルター処理します。そうしないと、空のセルができます。

また、コンポーネントのライブ サイクルに逆らっています。コンポーネントが実際にレンダリングされる前に、データに表示される設定が呼び出されるため、効果はありません。通常のオブジェクトを使用し、クラスを使用していない場合、プロパティの値を変更しても効果はありません。

サイト ノート: Boolean は Booleans である必要があります。文字列とインライン レンダラーはスコープの問題を引き起こす可能性があります。そのため、別のコンポーネント定義 (別名 .as または .mxml ファイル) を使用することをお勧めします。

于 2012-08-14T21:28:45.483 に答える
0

答えは、gokiさんによって大まかにここで見つけることができます:

http://www.fxug.ne​​t/modules/xhnewbb/viewtopic.php?topic_id=2229

少なくとも現時点では、これを機能させるには、実際にソースを画像または空白文字列に設定する必要があります (彼は少し違うことをしようとしているように見えました) が、機能します。

編集: これらの 2 行のコードは、可視プロパティをいじっていた場所を置き換えました。

var property0:SetProperty = new SetProperty(this, "source", "");
var property1:SetProperty = new SetProperty(this, "source", "dot.png");
于 2012-08-14T22:17:35.623 に答える