我在datagrid中遇到了itemRender的问题。实际上我有一个dataProvider,它在我的数据网格中填充了2列。第一列数据在TextInput中呈现,第二列数据在comboBox中呈现。我现在想要的是当我从网格中的行的组合框中选择一个元素时。我想在第一列的同一行的相应TextInput中显示selectedItem值。
我想知道是否有任何datagrid属性可以帮助我这样做?或者,如果有人可以指导我在comboBox的更改处理程序中编写什么代码?请参阅下面的代码。
我需要帮助。请帮我解决这个问题。
<mx:DataGrid id="myDG" rowHeight="25" dataProvider="{my_arrayColl}" width="100%" height="205" chromeColor="#D0CCAF" headerHeight="0" showHeaders="false">
<mx:columns>
<mx:DataGridColumn headerText="My Header 1"
editable="true"
dataField="LBL"
>
<mx:itemRenderer>
<fx:Component>
<mx:HBox horizontalAlign="left" horizontalScrollPolicy="off" verticalScrollPolicy="off">
<fx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.controls.Text;
import spark.events.TextOperationEvent;
protected function label_txt_changeHandler(event:TextOperationEvent):void
{
data.LBL = label_txt.text;
}
]]>
</fx:Script>
<s:TextInput id="label_txt" change="label_txt_changeHandler(event)" text="{data.LBL}" width="98%"/>
</mx:HBox>
</fx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
<mx:DataGridColumn headerText="My Header 2"
editable="true"
rendererIsEditor="true"
dataField="ALIAS"
>
<mx:itemRenderer>
<fx:Component>
<mx:ComboBox height="80%" change="mycb_changeHandler(event)" labelField="ALIAS" dataProvider="{outerDocument.mycb_array}">
<fx:Script>
<![CDATA[
import mx.events.ListEvent;
protected function mycb_changeHandler(event:ListEvent):void
{
}
]]>
</fx:Script>
</mx:ComboBox>
</fx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
</mx:columns>
</mx:DataGrid>
答案 0 :(得分:0)
如果我理解正确,您需要根据itemRenderer中ComboBox组件中的选择更新DataGrid的数据提供者。您可以通过转到所有者对象并更新数据中的相应对象来实现。只需将itemRenderer保存在单独的mxml中,并将调试指针放在label_txt_changeHandler方法中。
希望有所帮助......