Solved! Go to Solution.
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" xmlns:esri="http://www.esri.com/2008/ags" creationComplete="application1_creationCompleteHandler(event)"> <s:layout> <s:VerticalLayout paddingLeft="20" paddingTop="20" paddingRight="20" paddingBottom="20"/> </s:layout> <fx:Declarations> <!-- Place non-visual elements (e.g., services, value objects) here --> </fx:Declarations> <fx:Script> <![CDATA[ import com.esri.ags.tasks.JSONTask; import mx.collections.ArrayCollection; import mx.events.FlexEvent; import mx.rpc.AsyncResponder; import mx.rpc.Fault; import spark.events.IndexChangeEvent; protected function application1_creationCompleteHandler(event:FlexEvent):void { var jt:JSONTask = new JSONTask("http://server.arcgisonline.com/ArcGIS/rest/services"); jt.showBusyCursor = true; var uv:URLVariables = new URLVariables("f=pjson"); jt.execute(uv, new AsyncResponder(result,fault)); function result(event:Object, token:Object = null):void { var msArray:ArrayCollection = new ArrayCollection(); for(var s:int=0; s<event.services.length; s++){ if(event.services.type == "MapServer"){ msArray.addItem(event.services.name); } } MSdropdown.dataProvider = msArray; } function fault(event:Fault, token:Object = null):void { trace(event.faultString); } } protected function MSdropdown_changeHandler(event:IndexChangeEvent):void { var jt:JSONTask = new JSONTask("http://server.arcgisonline.com/ArcGIS/rest/services/" + MSdropdown.selectedItem + "/MapServer"); jt.showBusyCursor = true; var uv:URLVariables = new URLVariables("f=pjson"); jt.execute(uv, new AsyncResponder(result,fault)); function result(event:Object, token:Object = null):void { var msArray:ArrayCollection = new ArrayCollection(); for(var s:int=0; s<event.layers.length; s++){ var lo:Object = { label: event.layers.name, id: event.layers.id } msArray.addItem(lo); } MSLyrsdropdown.dataProvider = msArray; } function fault(event:Fault, token:Object = null):void { trace(event.faultString); } } protected function MSLyrsdropdown_changeHandler(event:IndexChangeEvent):void { var jt:JSONTask = new JSONTask("http://server.arcgisonline.com/ArcGIS/rest/services/" + MSdropdown.selectedItem + "/MapServer/" + MSLyrsdropdown.selectedItem.id); jt.showBusyCursor = true; var uv:URLVariables = new URLVariables("f=pjson"); jt.execute(uv, new AsyncResponder(result,fault)); function result(event:Object, token:Object = null):void { var msArray:ArrayCollection = new ArrayCollection(); for(var s:int=0; s<event.fields.length; s++){ var fo:Object = { label: event.fields.alias, name: event.fields.name } msArray.addItem(fo); } MSLyrFldsdropdown.dataProvider = msArray; } function fault(event:Fault, token:Object = null):void { trace(event.faultString); } } ]]> </fx:Script> <s:HGroup width="100%" gap="20" verticalAlign="middle"> <s:Label text="Map Service:" /> <s:DropDownList id="MSdropdown" width="300" prompt="Choose Map Service" change="MSdropdown_changeHandler(event)"/> </s:HGroup> <s:HGroup width="100%" gap="20" verticalAlign="middle"> <s:Label text="Map Service Layers:" /> <s:DropDownList id="MSLyrsdropdown" width="300" prompt="Choose Map Service Layer" change="MSLyrsdropdown_changeHandler(event)" labelField="label"/> </s:HGroup> <s:HGroup width="100%" gap="20" verticalAlign="middle"> <s:Label text="Map Service Layer Fields:" /> <s:DropDownList id="MSLyrFldsdropdown" width="300" prompt="Choose Map Service Layer Field"/> </s:HGroup> </s:Application>
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" xmlns:esri="http://www.esri.com/2008/ags" creationComplete="application1_creationCompleteHandler(event)"> <s:layout> <s:VerticalLayout paddingLeft="20" paddingTop="20" paddingRight="20" paddingBottom="20"/> </s:layout> <fx:Declarations> <!-- Place non-visual elements (e.g., services, value objects) here --> </fx:Declarations> <fx:Script> <![CDATA[ import com.esri.ags.tasks.JSONTask; import mx.collections.ArrayCollection; import mx.events.FlexEvent; import mx.rpc.AsyncResponder; import mx.rpc.Fault; import spark.events.IndexChangeEvent; protected function application1_creationCompleteHandler(event:FlexEvent):void { var jt:JSONTask = new JSONTask("http://server.arcgisonline.com/ArcGIS/rest/services"); jt.showBusyCursor = true; var uv:URLVariables = new URLVariables("f=pjson"); jt.execute(uv, new AsyncResponder(result,fault)); function result(event:Object, token:Object = null):void { var msArray:ArrayCollection = new ArrayCollection(); for(var s:int=0; s<event.services.length; s++){ if(event.services.type == "MapServer"){ msArray.addItem(event.services.name); } } MSdropdown.dataProvider = msArray; } function fault(event:Fault, token:Object = null):void { trace(event.faultString); } } protected function MSdropdown_changeHandler(event:IndexChangeEvent):void { var jt:JSONTask = new JSONTask("http://server.arcgisonline.com/ArcGIS/rest/services/" + MSdropdown.selectedItem + "/MapServer"); jt.showBusyCursor = true; var uv:URLVariables = new URLVariables("f=pjson"); jt.execute(uv, new AsyncResponder(result,fault)); function result(event:Object, token:Object = null):void { var msArray:ArrayCollection = new ArrayCollection(); for(var s:int=0; s<event.layers.length; s++){ var lo:Object = { label: event.layers.name, id: event.layers.id } msArray.addItem(lo); } MSLyrsdropdown.dataProvider = msArray; } function fault(event:Fault, token:Object = null):void { trace(event.faultString); } } protected function MSLyrsdropdown_changeHandler(event:IndexChangeEvent):void { var jt:JSONTask = new JSONTask("http://server.arcgisonline.com/ArcGIS/rest/services/" + MSdropdown.selectedItem + "/MapServer/" + MSLyrsdropdown.selectedItem.id); jt.showBusyCursor = true; var uv:URLVariables = new URLVariables("f=pjson"); jt.execute(uv, new AsyncResponder(result,fault)); function result(event:Object, token:Object = null):void { var msArray:ArrayCollection = new ArrayCollection(); for(var s:int=0; s<event.fields.length; s++){ var fo:Object = { label: event.fields.alias, name: event.fields.name } msArray.addItem(fo); } MSLyrFldsdropdown.dataProvider = msArray; } function fault(event:Fault, token:Object = null):void { trace(event.faultString); } } ]]> </fx:Script> <s:HGroup width="100%" gap="20" verticalAlign="middle"> <s:Label text="Map Service:" /> <s:DropDownList id="MSdropdown" width="300" prompt="Choose Map Service" change="MSdropdown_changeHandler(event)"/> </s:HGroup> <s:HGroup width="100%" gap="20" verticalAlign="middle"> <s:Label text="Map Service Layers:" /> <s:DropDownList id="MSLyrsdropdown" width="300" prompt="Choose Map Service Layer" change="MSLyrsdropdown_changeHandler(event)" labelField="label"/> </s:HGroup> <s:HGroup width="100%" gap="20" verticalAlign="middle"> <s:Label text="Map Service Layer Fields:" /> <s:DropDownList id="MSLyrFldsdropdown" width="300" prompt="Choose Map Service Layer Field"/> </s:HGroup> </s:Application>
Life esri,
Here is some example code for that:<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" xmlns:esri="http://www.esri.com/2008/ags" creationComplete="application1_creationCompleteHandler(event)"> <s:layout> <s:VerticalLayout paddingLeft="20" paddingTop="20" paddingRight="20" paddingBottom="20"/> </s:layout> <fx:Declarations> <!-- Place non-visual elements (e.g., services, value objects) here --> </fx:Declarations> <fx:Script> <![CDATA[ import com.esri.ags.tasks.JSONTask; import mx.collections.ArrayCollection; import mx.events.FlexEvent; import mx.rpc.AsyncResponder; import mx.rpc.Fault; import spark.events.IndexChangeEvent; protected function application1_creationCompleteHandler(event:FlexEvent):void { var jt:JSONTask = new JSONTask("http://server.arcgisonline.com/ArcGIS/rest/services"); jt.showBusyCursor = true; var uv:URLVariables = new URLVariables("f=pjson"); jt.execute(uv, new AsyncResponder(result,fault)); function result(event:Object, token:Object = null):void { var msArray:ArrayCollection = new ArrayCollection(); for(var s:int=0; s<event.services.length; s++){ if(event.services.type == "MapServer"){ msArray.addItem(event.services.name); } } MSdropdown.dataProvider = msArray; } function fault(event:Fault, token:Object = null):void { trace(event.faultString); } } protected function MSdropdown_changeHandler(event:IndexChangeEvent):void { var jt:JSONTask = new JSONTask("http://server.arcgisonline.com/ArcGIS/rest/services/" + MSdropdown.selectedItem + "/MapServer"); jt.showBusyCursor = true; var uv:URLVariables = new URLVariables("f=pjson"); jt.execute(uv, new AsyncResponder(result,fault)); function result(event:Object, token:Object = null):void { var msArray:ArrayCollection = new ArrayCollection(); for(var s:int=0; s<event.layers.length; s++){ var lo:Object = { label: event.layers.name, id: event.layers.id } msArray.addItem(lo); } MSLyrsdropdown.dataProvider = msArray; } function fault(event:Fault, token:Object = null):void { trace(event.faultString); } } protected function MSLyrsdropdown_changeHandler(event:IndexChangeEvent):void { var jt:JSONTask = new JSONTask("http://server.arcgisonline.com/ArcGIS/rest/services/" + MSdropdown.selectedItem + "/MapServer/" + MSLyrsdropdown.selectedItem.id); jt.showBusyCursor = true; var uv:URLVariables = new URLVariables("f=pjson"); jt.execute(uv, new AsyncResponder(result,fault)); function result(event:Object, token:Object = null):void { var msArray:ArrayCollection = new ArrayCollection(); for(var s:int=0; s<event.fields.length; s++){ var fo:Object = { label: event.fields.alias, name: event.fields.name } msArray.addItem(fo); } MSLyrFldsdropdown.dataProvider = msArray; } function fault(event:Fault, token:Object = null):void { trace(event.faultString); } } ]]> </fx:Script> <s:HGroup width="100%" gap="20" verticalAlign="middle"> <s:Label text="Map Service:" /> <s:DropDownList id="MSdropdown" width="300" prompt="Choose Map Service" change="MSdropdown_changeHandler(event)"/> </s:HGroup> <s:HGroup width="100%" gap="20" verticalAlign="middle"> <s:Label text="Map Service Layers:" /> <s:DropDownList id="MSLyrsdropdown" width="300" prompt="Choose Map Service Layer" change="MSLyrsdropdown_changeHandler(event)" labelField="label"/> </s:HGroup> <s:HGroup width="100%" gap="20" verticalAlign="middle"> <s:Label text="Map Service Layer Fields:" /> <s:DropDownList id="MSLyrFldsdropdown" width="300" prompt="Choose Map Service Layer Field"/> </s:HGroup> </s:Application>
Don't forget to click the Mark as answer check on this post and to click the top arrow (promote).
Follow these steps as shown in the below graphic: