Hi, I want to intialize the datagrid but looks like i am missing something. Could you please help me on this?
<?xml version="1.0" encoding="utf-8"?><ext:SuperPanel xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:ext="com.autolab.view.extenders.panel.*" xmlns:util="com.autolab.controller.util.*" creationComplete="UserHttp.send();" > <mx:Script> <![CDATA[ import mx.containers.VDividedBox; import flash.net.getClassByAlias; import mx.controls.CheckBox; import mx.formatters.DateFormatter; import mx.collections.ArrayCollection; import mx.controls.Alert; import mx.rpc.events.ResultEvent; import com.autolab.model.CollectData.Global; import mx.rpc.AbstractInvoker; private static var _instance:SuperPanel = null; public static function getInstance():SuperPanel { if (_instance == null){ _instance = new MyLockedMachinesPanel(); } return _instance; } [Bindable] private var globalInfo:Global = new Global(); [Bindable] private var emailurl:String = globalInfo.gServer + "services/onDemand/getuser.php"; [Bindable] private static var namewithQuotes:String; [Bindable] private static var sitewithQuotes:String; private function getUser(event:ResultEvent):void{ for each (var p:XML in event.result..user) { globalInfo.gUserName = p.name.toString(); globalInfo.gUserSite = p.site.toString(); } mylockedMachines.dataProvider = lockedlist; namewithQuotes = "'" + globalInfo.gUserName + "'"; sitewithQuotes = "'" + globalInfo.gUserSite + "'"; mylocked.myLockedData(namewithQuotes,sitewithQuotes); } [Bindable] public var lockedlist : ArrayCollection = new ArrayCollection(); public var myheaderArray : Array = new Array(); private function handleOSResult( event : Object ) : void { var machines : ArrayCollection = event.result as ArrayCollection; for(var i:Number = 0; i < machines.length; i++) { lockedlist.addItem(machines.getItemAt(i)); } } private function handleEmailFault(event:Object) :void { //navigateToURL(new URLRequest(globalInfo.gServer + 'home/login.php'), '_self'); } private function handleFault( event : Object ) : void { Alert.show( "Error in request <" + event.fault.faultCode + "> <" + event.fault.faultString + " other details " + event.fault.faultDetail + ">", "fault" ); } public override function setLayout(layout:XML):void { super.setLayout(layout); if (mylockedMachines == null) { return; //grid not initialized yet } // I want to intialize this grid as defined in the file. How can i do this? var columnIdx:int = 0; for each (var is_visible:Object in layout.sub_layout..is_visible) { mylockedMachines.columns[columnIdx].visible = Boolean(is_visible == true); //note: Boolean("false") is true columnIdx++; } } public override function getLayout():XML { var layout:XML = super.getLayout(); if (mylockedMachines == null) return layout; var columns:XML = <columns/>; var i:int = 0; for (; i < showCB.dataProvider.length; ++i) { columns.appendChild(<is_visible>{showCB.dataProvider[i].visible}</is_visible>); } layout.sub_layout.appendChild(columns); Alert.show("..." + mylockedMachines); return layout; } public function showme():void { lockedlist.removeAll(); this.mylocked.myLockedData(namewithQuotes,sitewithQuotes); } public function FreeSelectedMachine():void { for each (var machinename:Object in lockedlist) { if (machinename.active == true) { mylocked.UnLockedMachine(machinename.machine); } } this.showme(); } public static function myDate(i:int):String { var d0:Date = new Date(); var d1:Date = new Date(i * 1000); if (d1 < d0) { return "Infinite"; } var re1:RegExp = /\w{3} (\w{3} \d+) (\d{4}) (\d{2}:\d{2}):\d{2} (\w{2})/m ; return d1.toLocaleString().replace(re1, "$1 $3 $4"); } ]]> </mx:Script> <mx:HTTPService id="UserHttp" result ="getUser(event)" fault="handleEmailFault(event)" resultFormat="e4x" url="{emailurl}" useProxy="false" /> <mx:RemoteObject id="mylocked" destination="MyLocked" fault="handleFault(event)" result="handleOSResult(event)" /> <mx:HBox> <mx:ComboBox id = "showCB" labelField="headerText" dataProvider="{mylockedMachines.columns}" prompt="add/remove columns" toolTip="add/remove columns"> <mx:itemRenderer> <mx:Component> <mx:CheckBox click="{data.visible = !data.visible}" selected="{data.visible}"/> </mx:Component> </mx:itemRenderer> </mx:ComboBox> <mx:Button label="refresh" click="showme()" /> <mx:Button label="Free machine" click="FreeSelectedMachine()" toolTip="Free the selected Machine" /> </mx:HBox> <mx:DataGrid id="mylockedMachines" width="100%" height="100%" dataProvider="{lockedlist}" allowMultipleSelection="true"> <mx:columns> <mx:DataGridColumn headerText="Machine" dataField="machine" wordWrap="true" sortable="true" /> <mx:DataGridColumn headerText="os" dataField="installed_os" wordWrap="true" sortable="true" /> <mx:DataGridColumn headerText="Comments" dataField="comments" wordWrap="false" sortable="true" itemRenderer="com.autolab.view.components.DataRender"/> <mx:DataGridColumn headerText="Expiration" dataField="expiration" wordWrap="false" sortable="true" > <mx:itemRenderer> <mx:Component> <mx:HBox> <mx:Text id="exp" text="{MyLockedMachinesPanel.myDate(data.expiration)}" truncateToFit="true" /> </mx:HBox> </mx:Component> </mx:itemRenderer> </mx:DataGridColumn> <mx:DataGridColumn id="remove" textIndent="10" headerText="Free Machine" dataField="active"> <mx:itemRenderer> <mx:Component> <mx:HBox horizontalAlign="center"> <mx:CheckBox selected="{data.active==true?true:false}" click="{data.active= !data.active}" /> </mx:HBox> </mx:Component> </mx:itemRenderer> </mx:DataGridColumn> </mx:columns> </mx:DataGrid> </ext:SuperPanel> Thanks, Vikrant Own a website.Get an unlimited package.Pay next to nothing.*Go to http://in.business.yahoo.com/

