Apache flex datagrid中的复选框呈现 在这里输入代码
如何将所有选中的项目添加到一个新的数组中?请帮助我任何人您可以在联系人类中添加一个附加字段-“已选中”或“已选中”-并在复选框的选择更改时使用itemRenderer设置此值。然后,您可以简单地通过contacts dataProvider进行循环,查看检查了哪些联系人 您可以这样做:Apache flex datagrid中的复选框呈现 在这里输入代码,apache-flex,Apache Flex,如何将所有选中的项目添加到一个新的数组中?请帮助我任何人您可以在联系人类中添加一个附加字段-“已选中”或“已选中”-并在复选框的选择更改时使用itemRenderer设置此值。然后,您可以简单地通过contacts dataProvider进行循环,查看检查了哪些联系人 您可以这样做: <mx:DataGrid id="dg" dataProvider="{cNumbersList}"> <mx:columns> <mx:DataGridCo
<mx:DataGrid id="dg" dataProvider="{cNumbersList}">
<mx:columns>
<mx:DataGridColumn dataField="contactName" headerText="Name" width="50"/>
<mx:DataGridColumn dataField="contactNo" headerText="ContactNo" width="40"/>
<mx:DataGridColumn headerText="Select Contact Number" width="20">
<mx:itemRenderer>
<mx:Component>enter code here
<mx:CheckBox selected="false" />
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
</mx:columns>
</mx:DataGrid>
渲染器获取联系人作为其数据。我还没有测试过这个,但原则上它应该可以工作。如果代码出现问题,请告诉我。我们希望在datagrid中有一个复选框,允许多个选择。我们扩展了DataGrid对象:
<mx:Component>
<mx:CheckBox id="contactCheckBox" selected="{data.contactSelected}" change="data.contactSelected = contactCheckBox.selected"/>
</mx:Component>
我们还创建了一个CheckboxRenderer:
package obj
{
import mx.controls.DataGrid;
import flash.display.Sprite;
import flash.events.KeyboardEvent;
import mx.controls.CheckBox;
import mx.controls.listClasses.IListItemRenderer;
public class CheckboxDataGrid extends DataGrid
{
override protected function selectItem(item:IListItemRenderer,
shiftKey:Boolean, ctrlKey:Boolean,
transition:Boolean = true):Boolean
{
// only run selection code if a checkbox was hit and always
// pretend we're using ctrl selection
if (item is CheckBox)
return super.selectItem(item, false, true, transition);
return false;
}
// turn off selection indicator
override protected function drawSelectionIndicator(
indicator:Sprite, x:Number, y:Number,
width:Number, height:Number, color:uint,
itemRenderer:IListItemRenderer):void
{
}
// whenever we draw the renderer, make sure we re-eval the checked state
override protected function drawItem(item:IListItemRenderer,
selected:Boolean = false,
highlighted:Boolean = false,
caret:Boolean = false,
transition:Boolean = false):void
{
CheckBox(item).invalidateProperties();
super.drawItem(item, selected, highlighted, caret, transition);
}
// fake all keyboard interaction as if it had the ctrl key down
override protected function keyDownHandler(event:KeyboardEvent):void
{
// this is technically illegal, but works
event.ctrlKey = true;
event.shiftKey = false;
super.keyDownHandler(event);
}
}
}
_EmailAddressIndexeSelected只是类中的一个数组对象,定义为:
private function emailAddressesSelected():void
{
_emailAddressIndexesSelected = notificationsCheckboxGrid.selectedIndices;
}
<obj:CheckboxDataGrid id="notificationsCheckboxGrid"
dataProvider="{_myModel._grid}"
allowMultipleSelection="true"
showHeaders="false"
change="emailAddressesSelected()">
<qmsAdmin:columns>
<mx:DataGridColumn width="20" sortable="false" itemRenderer="CheckBoxRenderer"/>
<mx:DataGridColumn width="150" dataField="email"/>
<mx:DataGridColumn dataField="notificationType"/>
</qmsAdmin:columns>
</obj:CheckboxDataGrid>
private function emailAddressesSelected():void
{
_emailAddressIndexesSelected = notificationsCheckboxGrid.selectedIndices;
}
private var _emailAddressIndexesSelected:Array;