0

編集可能な行を持つDataGridがいくつかあります。これには、新しい行を「動的に」追加するオプションもあります。つまり、最後の行にはいくつかのデフォルトデータがあり(たとえば、「新しい行を追加するにはここをクリック」)、ユーザーがその値をクリックすると、その値を編集でき、最終的に新しい行が挿入されます。

ただし、同じDataGridに、DataGridのDataProviderからのものではない列もあります。その列は特定の行を削除するために使用され、マウスクリックアクションが関連付けられたクリック可能な画像のみを表示する必要があります(カスタムitemRenderer内)。

最後の行を除くすべての行にその画像を表示したいと思います。

これまでの私のDataGridColumnコードは次のとおりです。

<mx:DataGridColumn width="20" editable="false">
    <mx:itemRenderer>
        <mx:Component>
            <mx:VBox creationComplete="cc()">
                <mx:Script>
                    <![CDATA[
                        import mx.controls.Alert;
                        import mx.events.CloseEvent;

                        public function cc():void{
                            delImg.source = "assets/images/delete-icon.png";
                        }
                    ]]>
                </mx:Script>
                <mx:Image id="delImg" smoothBitmapContent="true" width="15" height="15" click="outerDocument.confirmDelete(event)"/>
            </mx:VBox>
        </mx:Component>
    </mx:itemRenderer>
</mx:DataGridColumn>

関数に何らかの条件を設定し、cc現在の行のインデックスなどをdataProviderの長さと比較する必要があると思います...ここではDataGridEventを使用していないため、rowIndexプロパティを取得できないため、その方法がよくわかりません。 ..。。

これで私を助けてください、そしてどんな助けにも感謝します!:)

4

1 に答える 1

1

VBox は IDropInListItemRenderer を実装しません。IDropInListItemRenderer は、"listData" プロパティ ("DataGridListData" 型) を提供します。さらに、「listData.owner」は DataGrid オブジェクトになり、「listData.rowIndex」は rowIndex プロパティを提供します。

于 2010-01-06T21:04:37.587 に答える