我希望在选择数据网格的行时选中复选框(位于数据网格中)。为此,我写了以下代码:
<mx:DataGrid id="dg_trashContent" allowMultipleSelection="true"
verticalGridLines="true"
dataProvider="{trashDataProvider}"
width="100%"
height="240"
fontFamily="Arial" y="23"
selectable="true">
<mx:columns>
<mx:DataGridColumn id="col0"
textAlign="left"
sortable="false"
headerText=""
headerStyleName="datagridHeader"
dataField="name"
width="20">
<mx:itemRenderer>
<mx:Component>
<mx:VBox paddingLeft="5">
<mx:CheckBox selected="{data.isRowSelected}"
click="outerDocument.updateSelectedRowFlag(event);"
change="{this.selected = data.isRowselected; }"/>
</mx:VBox>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
<mx:DataGridColumn id="col1"
textAlign="left"
sortable="true"
headerText="Name"
headerStyleName="datagridHeader"
dataField="name"/>
但是我在checkBox中使用的“selected”属性出错了。错误说: 通过具有静态类型TrashContainer_inlineComponent1的引用访问可能未定义的属性。
你能不能看到我在这里做错了什么。
此致 Zeeshan
答案 0 :(得分:0)
您可以使用此渲染器
<mx:DataGridColumn id="col0"
textAlign="left"
sortable="false"
headerText=""
dataField="key"
width="20">
<mx:itemRenderer>
<mx:Component>
<mx:VBox paddingLeft="5">
<mx:Script>
<![CDATA[
import mx.controls.DataGrid;
override public function set data(value:Object):void
{
super.data = value;
ckb.selected = data.isRowSelected;
if(data.isRowSelected)
(parent.parent as DataGrid).selectedItem = data;
}
]]>
</mx:Script>
<mx:CheckBox id="ckb" />
</mx:VBox>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
其中isRowSelected是集合中数据对象的一部分。
我希望这可以有用。