1

インラインitemrendererを使用してデータグリッドを作成します。レンダラーはドロップダウンリストです。dropdowlistの値が変更されたときに、dataproviderを更新したいのですが、その方法がわかりませんでした。手伝って頂けますか?

ありがとう

[Bindable] private var DP_PRAT_INIT:ArrayCollection;

<s:DataGrid id="dgTuVous" fontWeight="normal" 
                                        dataProvider="{DP_PRAT_INIT}"
                                        width="100%" height="100%" 
                                        horizontalScrollPolicy="on"
                                        fontSize="10"

                                        >
                                <s:columns>
                                    <s:ArrayList>
                                        <s:GridColumn dataField="prInitiales" width="40" headerText="Prat" />
                                        <s:GridColumn  width="75" dataField="prTuVous"
                                                      headerText="Tu/Vous" editable="true">
                                            <s:itemRenderer>
                                                <fx:Component>
                                                    <s:GridItemRenderer>
                                                        <fx:Script>
                                                            <![CDATA[
                                                                import spark.events.IndexChangeEvent;



                                                                protected function ddlTuVous_changeHandler(event:IndexChangeEvent):void
                                                                {

                                                                    DP_PRAT_INIT[ddlTuVous.selectedIndex].prTuVous=ddlTuVous.selectedItem;

                                                                    trace ("ddlTuVous.selectedItem" +ddlTuVous.selectedItem) ;

                                                                }

                                                            ]]>
                                                        </fx:Script>
                                                        <s:DropDownList width="100%" selectedIndex="1" id="ddlTuVous"
                                                                        change="ddlTuVous_changeHandler(event)">
                                                            <s:dataProvider>
                                                                <s:ArrayList>
                                                                    <fx:String>Tu</fx:String>
                                                                    <fx:String>Vous</fx:String>
                                                                </s:ArrayList>
                                                            </s:dataProvider>
                                                        </s:DropDownList>
                                                    </s:GridItemRenderer>
                                                </fx:Component>
                                            </s:itemRenderer>



                                        </s:GridColumn>

                                    </s:ArrayList>
                                </s:columns>
                            </s:DataGrid>
4

1 に答える 1

1

プロパティを使用してホストコントロールを参照します...その配列にアクセスする場合outerDocumentはを呼び出します。outerDocument.DP_PRAT_INITただし、その配列はプライベートであるため、パブリックにする必要があります。または、呼び出すことができるパブリック関数を作成することもできますouterDocumentが...うん。

私があなたのコードを正しく理解しているなら、あなたはあなたが可能性のあるインデックスの不一致を持っていないのでそれがより良いことを除いて同じであるのdataプロパティにアクセスするべきです...GridItemRendererouterDocument.DP_PRAT_INIT[ddlTuVous.selectedIndex]

だから、あなたが本当に欲しいのは:

data.prTuVous = ddlTuVous.selectedItem;
于 2012-05-23T00:52:21.600 に答える