<fx:Declarations> <esri:RelationshipInspector id="relationshipInspector" width="590" height="400" editEnabled="true"/> <esri:FeatureLayer id="yourTable" fault="fLayer_faultHandler(event)" load="{doSearch()}" loadError="fLayer_loadErrorHandler(event)" mode="snapshot" updateEnd="fLayer_updateEndHandler(event)" updateStart="fLayer_updateStartHandler(event)" outFields="*" disableClientCaching="true" url="http://tfsgis-iisd01:6080/arcgis/rest/services/SARS_WILSON/RELATED_TABLES/FeatureServer/1"/> </fx:Declarations> <esri:AttributeTable id="myAttributeTable" width="100%" height="55%" deleteFeatures="fdg_deleteFeaturesHandler(event)" featureLayer="{yourTable}" updateFeature="fdg_updateFeatureHandler(event)"> </esri:AttributeTable>
private function doSearch():void { // var urltable:String = "http://tfsgis-iisd01:6080/arcgis/rest/services/SARS_WILSON/RELATED_TABLES/FeatureServer/1" //or you can use your feature layer layerDetails informations to get the related table Id. // var yourTable:FeatureLayer; //Here you're casting the table as a FeatureLayer so it's editable var yourTable:com.esri.ags.layers.FeatureLayer = new com.esri.ags.layers.FeatureLayer("http://tfsgis-iisd01:6080/arcgis/rest/services/SARS_WILSON/RELATED_TABLES/FeatureServer/1") as com.esri.ags.layers.FeatureLayer; // yourTable = new FeatureLayer(urltable, null, null) as FeatureLayer; yourTable.enabled = true; yourTable.outFields = ['*']; yourTable.mode = "onDemand" yourTable.useAMF = true; yourTable.definitionExpression = "Office like '" + qText.text + "'"; myAttributeTable.featureLayer = yourTable as FeatureLayer yourTable.visible = true yourTable.isEditable = true; if (yourTable is FeatureLayer) { Alert.show("TEST") } } <esri:AttributeTable id="myAttributeTable" width="100%" height="55%" deleteFeatures="fdg_deleteFeaturesHandler(event)" updateFeature="fdg_updateFeatureHandler(event)"> </esri:AttributeTable>
Solved! Go to Solution.
protected function myFeatureLayer_SelectionCompleteHandler(event:FeatureLayerEvent):void { var query2:Query = new Query; ///query.where = "Office like '" + qText.text + "'"; query2.where = "Office like '" + myFeatureLayer.selectedFeatures[0].attributes.NAME_SH + "'"; myAttributeTable.featureLayer = myFeatureLayer //yourTable.selectFeatures(query2, FeatureLayer.SELECTION_NEW); yourTable.definitionExpression = "Office like '" + myFeatureLayer.selectedFeatures[0].attributes.NAME_SH + "'"; myAttributeTable.featureLayer = yourTable }
protected function myMap_clickHandler(event:MapMouseEvent):void { mapClickPoint = event.mapPoint; if (event.originalTarget is Graphic || event.originalTarget.parent is Graphic) { var graphic:Graphic = event.originalTarget is Graphic ? Graphic(event.originalTarget) : Graphic(event.originalTarget.parent); var query:Query = new Query; query.objectIds = [graphic.attributes[myFeatureLayer.layerDetails.objectIdField]]; myFeatureLayer.selectFeatures(query, FeatureLayer.SELECTION_NEW); myFeatureLayer.addEventListener(FeatureLayerEvent.SELECTION_COMPLETE,myFeatureLayer_SelectionCompleteHandler); } else { myFeatureLayer.clearSelection(); yourTable.clearSelection(); } if (event.originalTarget is Graphic || event.originalTarget.parent is Graphic) // for PictureMarkerSymbol target is not graphic(graphic contains a child object) { if (event.originalTarget is Graphic) { selectedGraphic = Graphic(event.originalTarget); } else if (event.originalTarget.parent is Graphic) //check for PictureMarkerSymbol { selectedGraphic = Graphic(event.originalTarget.parent); } myMap.infoWindow.content = relationshipInspector; relationshipInspector.infoWindowLabel = "Office: " + selectedGraphic.attributes["NAME"]; relationshipInspector.graphic = selectedGraphic; myMap.infoWindow.show(mapClickPoint); } else { myMap.infoWindow.hide(); Alert.show("No incidents found here, please try somewhere else.", "No features"); } // else // { // myFeatureLayer.clearSelection(); // yourTable.clearSelection(); // } } protected function myFeatureLayer_SelectionCompleteHandler(event:FeatureLayerEvent):void { var query2:Query = new Query; ///query.where = "Office like '" + qText.text + "'"; query2.where = "Office like '" + myFeatureLayer.selectedFeatures[0].attributes.NAME_SH + "'"; yourTable.selectFeatures(query2, FeatureLayer.SELECTION_NEW); }
import com.esri.ags.Graphic; import com.esri.ags.events.GraphicEvent; import com.esri.ags.events.LayerEvent; import mx.collections.ArrayCollection; [Bindable] private var totalGraphicsShown:String = ""; private var filterParam:String; protected function onFilterClick(event:MouseEvent):void { var bt:Button = Button(event.target); switch (bt.id) { case bt100.id: filterParam = "AL"; break; case bt300.id: filterParam = "AU"; break; case bt500.id: filterParam = "BE"; break; case bt700.id: filterParam = "CY"; break; case bt900.id: filterParam = "CA"; break; } myFeatureLayer.setFilterFunction(providerFilterFunction); } protected function onClearFilters(event:MouseEvent):void { myFeatureLayer.setFilterFunction(null); } protected function providerFilterFunction(item:Object):Boolean { var isFiltered:Boolean = false; var gr:Graphic = Graphic(item); if (gr.attributes.NAME_SH == filterParam) { isFiltered = true; } return isFiltered; }
package MyFeatureLayer { import com.esri.ags.layers.FeatureLayer; import com.esri.ags.events.LayerEvent; import com.esri.ags.layers.FeatureLayer; public class MyFeatureLayer extends FeatureLayer { public function MyFeatureLayer(url:String=null, proxyURL:String=null, token:String=null) { super(url, proxyURL, token); } public function setFilterFunction(func:Function):void { $graphicProvider.filterFunction = func; $graphicProvider.refresh(); dispatchEvent(new LayerEvent(LayerEvent.UPDATE_END, this, null, true)); } } }
protected function myFeatureLayer_SelectionCompleteHandler(event:FeatureLayerEvent):void { var query2:Query = new Query; ///query.where = "Office like '" + qText.text + "'"; query2.where = "Office like '" + myFeatureLayer.selectedFeatures[0].attributes.NAME_SH + "'"; myAttributeTable.featureLayer = myFeatureLayer //yourTable.selectFeatures(query2, FeatureLayer.SELECTION_NEW); yourTable.definitionExpression = "Office like '" + myFeatureLayer.selectedFeatures[0].attributes.NAME_SH + "'"; myAttributeTable.featureLayer = yourTable }