DataGrid自定义 itemrenderer 步骤[]
1、创建一个自定义组件 mx:checkbox,并定义一个函数用于状态改变时,向外派发事件。
2、自定义控件中的函数用 this.parentapplication.dispatchevent(new 自定义的事件(data,chk.selected)
parentapplication. [指向应用程序的application]
3、自定义事件 cartEvent()
cartEvent:Event{
定义要让事件接收者要接收的变量var1,变量var2
function 构造函数(_data:object,_isvar2):void{
var1=_data;
var2=_isvar;
super("事件名") -------- 事件的名称
}
在其构造函数中,定义了参数,参数赋给事件的变量,当接收函数接收这个事件时就可以访问事件中定义的变量了
4、在主程序中的initApp()中监听事件
addEventListener("事件名",处理函数)
5、在处理函数中接收 evt中的变量并处理
evt.var1
另一种方法:
直接在DataGrid的列下定义
<mx:itemRenderer>
<mx:Component>
<mx:LinkButton 内部控件 click="outerDocument.buttonDel()">
//调用外部的函数,必须用 outerDocument
<<mx:Component>
</mx:itemRenderer>
示例:
// Define event listener for the itemEditEnd event.
private function getCellInfo(event:DataGridEvent):void {
// Get the cell editor and cast it to TextInput.
var myEditor:TextInput =
TextInput(event.currentTarget.itemEditorInstance);
// Get the new value from the editor.
var newVal:String = myEditor.text;
// Get the old value.
var oldVal:String =
event.currentTarget.editedItemRenderer.data[event.dataField];
// Write out the cell coordinates, new value,
// and old value to the TextArea control.
cellInfo.text = "cell edited./n";
cellInfo.text += "Row, column: " + event.rowIndex + ", " +
event.columnIndex + "/n";
cellInfo.text += "New value: " + newVal + "/n";
cellInfo.text += "Old value: " + oldVal;
}
7、DataGrid的选择项可由 selectitem.data 得到后面加上 selectedItem.data.字段名。可得到此字段的值
datagrid 的 dataprovider 可由xmllistcollection 得到
var data_xml:XMLListCollection=dg_szjz.dataProvider as XMLListCollection;
var data_array:Array=data_xml.toArray();
var data_myarray:ArrayCollection=new ArrayCollection(data_array)
DataGrid绑定 data_myarray 用这个
dg_datasource=DataUtil.xmltoarray(myxmla);
dg_szjz.dataProvider=dg_datasource.source[0].data;