DataGrid中嵌入CheckBox控件
做项目遇到一个问题,初始化显示图层的索引号和名称信息,提供勾选控件选择进行查询的图层。利用for循环可以遍历所有图层,这样就涉及一个问题动态添加checkbox控件问题(如显示在datagrid控件的第一列中)。
根据需求进行问题解决:利用addChild方法作为搜索信息关键字,
思路一
导入接口imp
ort mx.controls.checkbox;
for循环遍历添加:for(var i:int=0;i<infos.Length;i++)
{
var ck:CheckBox=new CheckBox();
datagrid1.addChild(ck);
}
思路二
设置datagrid列的样式itemRenderer:
<mx:DataGridColumn dataField="id" headerText="选择">
<mx:itemRenderer>
<mx:Component>
<mx:HBox>
<mx:CheckBox id="chxBox" selected=" {data.selected}" click="outerDocument.clickHanlder(this);"/></mx:HBox>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
通过运行测试,思路二在设计时控制从效率和难度上都更胜一筹。
for循环遍历添加:for(var i:int=0;i<infos.Length;i++)
{
var ck:CheckBox=new CheckBox();
datagrid1.addChild(ck);
}
思路二
设置datagrid列的样式itemRenderer:
<mx:DataGridColumn dataField="id" headerText="选择">
<mx:itemRenderer>
<mx:Component>
<mx:HBox>
<mx:CheckBox id="chxBox" selected=" {data.selected}" click="outerDocument.clickHanlder(this);"/></mx:HBox>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
通过运行测试,思路二在设计时控制从效率和难度上都更胜一筹。