首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > flex >

flex中AdvancedDataGrid列下的itemRenderer

2012-11-23 
flex中AdvancedDataGrid列上的itemRenderer需求:一个表格,在点击一个“添加”按钮时要动态的增加一行,且有下

flex中AdvancedDataGrid列上的itemRenderer
需求:一个表格,在点击一个“添加”按钮时要动态的增加一行,且有下拉列表功能。

主文件:GridView.mxml

<?xml version="1.0" encoding="utf-8"?><mx:GridItem xmlns:mx="http://www.adobe.com/2006/mxml" width="98%" height="200" xmlns:mate="http://mate.asfusion.com/" xmlns:views="com.fisci.asia.fnt.view.*" xmlns:components="com.hillelcoren.components.*"  backgroundColor="#FBF888" ><mx:Script><![CDATA[import mx.collections.ArrayCollection;import mx.controls.Alert;import mx.events.FlexEvent;import mx.controls.listClasses.*;[Bindable]public var ftType:String = "EFT";//EFT or AFT[Bindable]public var fntGridDataArrColl:ArrayCollection = new ArrayCollection();private function completeControl(evt:FlexEvent):void{//ren.cataGoryId.dataProvider = ren.cataGoryDpArrColl;//var ren:GridColumnRenderer =GridColumnRenderer( ClassFactory(adaGridColCataGoryId.itemRenderer).newInstance());///Alert.show("gridItemColRenderer="+ren.cataGoryId);//parentDocument.init(evt)}public function init(evt:FlexEvent):void{///obj.//AdvancedDataGridColumn(this.fntEFTGrid.getChildAt(2))//fntEFTGrid.AdvancedListBaseContentHolder141.GridColumnRenderer178.cataGoryId//Alert.show("called by gridColumn="+(AdvancedListBaseContentHolder(this.fntEFTGrid.getChildAt(2))));var ren:GridColumnRenderer =GridColumnRenderer( ClassFactory(adaGridColCataGoryId.itemRenderer).newInstance());ren.roGridCol.getCataGory();}private function addFntColumn(event:MouseEvent):void{ var obj:Object = new Object();obj.FNT_TRADE_ID = "";obj.AMOUNT = 0.00;obj.FNT_TRANS_TYPE = "";fntGridDataArrColl.addItem(obj);fntEFTGrid.dataProvider = fntGridDataArrColl;////var ren:GridColumnRenderer =GridColumnRenderer( ClassFactory(adaGridColCataGoryId.itemRenderer).newInstance());//Alert.show("gridItemColRenderer="+ren.cataGoryId);}public function myStyleFunc(data:Object,col:AdvancedDataGridColumn):Object{return {color:'black'};}//myADG.invalidateList(); 刷新表格]]></mx:Script><mx:VBox top="5" paddingTop="8" paddingLeft="10" paddingBottom="8" width="98%"><mx:Button label="{resourceManager.getString('resources','fnt.fntGridView.add.button')}"   click="addFntColumn(event)"/><mx:AdvancedDataGrid id="fntEFTGrid"  dataProvider="{fntGridDataArrColl}"  width="98%" editable="true" styleFunction="myStyleFunc"><mx:columns><!--这里是设定列标题--><mx:AdvancedDataGridColumn dataField="FNT_TRADE_ID"  editable="false"headerText="{resourceManager.getString('resources','fnt.fntGridView.cell.fntTradeId')}"/><mx:AdvancedDataGridColumn dataField="AMOUNT"  editable="true"headerText="{resourceManager.getString('resources','fnt.fntGridView.cell.amount')}"/><mx:AdvancedDataGridColumn dataField="FNT_TRANS_TYPE" editable="true"  id="adaGridColCataGoryId" headerText="{resourceManager.getString('resources','fnt.fntGridView.cell.catagory')}"    itemRenderer="{new ClassFactory(GridColumnRenderer)}"> </mx:AdvancedDataGridColumn></mx:columns></mx:AdvancedDataGrid></mx:VBox></mx:GridItem>


itemRenderer文件GridColumnRenderer.mxml
<?xml version="1.0" encoding="utf-8"?><mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml"  width="250"xmlns:components="com.hillelcoren.components.*"  initialize="init(event)"><mx:Script><![CDATA[import mx.events.MenuEvent;import mx.controls.Alert;import com.fisci.asia.common.Constants;import mx.rpc.events.FaultEvent;import mx.rpc.events.ResultEvent;import mx.collections.ArrayCollection;import mx.events.FlexEvent;[Bindable]public var text:String = "";[Bindable]public var code:String = "code";[Bindable]public var browserFieldsArry:Array = Constants.BROWSER_FIELDS_ARRY;[Bindable]    public var cataGoryDpArrColl:ArrayCollection = new ArrayCollection();private function completeControl(evt:FlexEvent):void{//this.cataGoryId.dataProvider = cataGoryDpArrColl;//Alert.show("gridItemColRenderer="+this.cataGoryId.dataProvider.length);//parentDocument.init(evt)}public function init(evt:FlexEvent):void{///obj.//AdvancedDataGridColumn(this.fntEFTGrid.getChildAt(2))//fntEFTGrid.AdvancedListBaseContentHolder141.GridColumnRenderer178.cataGoryId//Alert.show("called by gridColumn="+(AdvancedListBaseContentHolder(this.fntEFTGrid.getChildAt(2))));//var ren:GridColumnRenderer =GridColumnRenderer( ClassFactory(adaGridColCataGoryId.itemRenderer).newInstance());//Alert.show("length="+(cataGoryDpArrColl.length));if(cataGoryDpArrColl!=null && cataGoryDpArrColl.length == 0)  roGridCol.getCataGory();//Alert.show("dd="+ ren.cataGoryId );}private function handleItemClick(event:MenuEvent):void{switch (String(event.item.@data)){case "browse"://Alert.show("at="+event.currentTarget);//Alert.show("cataCGory="+this.cataGoryDpArrColl);this.cataGoryId.dataProvider = this.cataGoryDpArrColl;cataGoryId.showBrowser();    break;case "remove":cataGoryId.selectedItems.removeAll();break;}}private function handleResult(event:ResultEvent):void{cataGoryDpArrColl = event.result as ArrayCollection;//Alert.show("gridItemColRenderer="+cataGoryDpArrColl.length);}private function handleFault(e:FaultEvent):void{Alert.show(String(e.fault.message), "错误");}]]></mx:Script><mx:XML format="e4x" id="menuData"><root><menuitem data="browse" label="browse"/><menuitem data="remove" label="removeall"/></root></mx:XML><mx:RemoteObject id="roGridCol" destination="bankAcctManager" result="handleResult(event)" fault="handleFault(event)" showBusyCursor="true">    </mx:RemoteObject>    <components:AdvancedAutoComplete id="cataGoryId" width="250" visible="true" includeInLayout="true"          itemClick="handleItemClick(event)"        actionsMenuDataProvider="{menuData}"         matchType="anyPart"          text="{text}"        labelField="{code}"        browserFields="{browserFieldsArry}"allowMultipleSelection="false" selectionLayout="horizontal" />                        </mx:HBox>



热点排行