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属性与GridItemRenderer它相同,outerDocument.DP_PRAT_INIT[ddlTuVous.selectedIndex]只是它更好,因为您没有可能的索引不匹配......

所以,你真正想要的是:

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