我使用内联itemrenderer创建一个datagrid。 渲染器是下拉列表。 当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>
答案 0 :(得分:1)
使用outerDocument
属性引用主机控件...如果要访问该阵列,可以调用outerDocument.DP_PRAT_INIT
。但是,该数组是私有的,所以你必须公开它。或者,您可以创建一个可以在outerDocument
上调用的公共函数,但是......哎呀。
如果我正确理解您的代码,您应该访问data
的{{1}}属性,该属性与GridItemRenderer
相同,但它更好,因为您没有可能指数不匹配......
所以,你真正想要的是:
outerDocument.DP_PRAT_INIT[ddlTuVous.selectedIndex]