Aide

857
6
Jump to solution
03-31-2013 09:03 AM
lifeEsri
New Contributor III
Bonsoir tt le monde
je voudrai créer un combobox qui contient la liste des couches de mon service publier sous arcgis server et un autre combobox qui contient la liste des fields de chaque couche sélectionnées dans le premier combobox
et merci d'avance .
Tags (2)
0 Kudos
1 Solution

Accepted Solutions
RobertScheitlin__GISP
MVP Emeritus
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:

View solution in original post

0 Kudos
6 Replies
RobertScheitlin__GISP
MVP Emeritus
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:

0 Kudos
lifeEsri
New Contributor III
thank you alot i will try it now.

Merci une autre fois
0 Kudos
RobertScheitlin__GISP
MVP Emeritus
life Esri,

Une fois que vous avez vérifié que cela fonctionne, n'oubliez pas de cliquer sur le bouton Marquer comme contrôle de réponse sur ce post et cliquez sur la flèche du haut (promouvoir).
Suivez ces étapes comme le montre le graphique ci-dessous:

0 Kudos
lifeEsri
New Contributor III
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:









That did it... thanks!!
0 Kudos
lifeEsri
New Contributor III
Salut Robert Scheitlin ,
svp je voudrai realiser une recherche parametrable (SearchWidget)
0 Kudos
lifeEsri
New Contributor III
Merci !!!!
0 Kudos