jhon 96, Your issue was you were attempting to apply the edits to the feature layer before the featurelayer was loaded and ready.Working code:<?xml version="1.0" encoding="utf-8"?>
<viewer:BaseWidget xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
xmlns:esri="http://www.esri.com/2008/ags"
xmlns:viewer="com.esri.viewer.*">
<fx:Script>
<![CDATA[
import com.esri.ags.FeatureSet;
import com.esri.ags.Graphic;
import com.esri.ags.layers.FeatureLayer;
import com.esri.ags.layers.supportClasses.FeatureEditResults;
import com.esri.ags.tasks.QueryTask;
import com.esri.ags.tasks.supportClasses.Query;
import mx.collections.ArrayCollection;
import mx.controls.Alert;
import mx.rpc.AsyncResponder;
import mx.rpc.Fault;
private var service:String = "http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/SanFrancisco/311Incidents/FeatureServer/0";
private var eventsLayer:FeatureLayer = new FeatureLayer(service);
protected function btDelete_clickHandler(event:MouseEvent):void
{
try{
const deletes:Array = [dgFeatures.selectedItem.gra];
eventsLayer.applyEdits(null, null, deletes, false,
new AsyncResponder(featureLayer_editsCompleteHandler, featureLayer_faultHandler));
function featureLayer_editsCompleteHandler(featureEditResults:FeatureEditResults, token:Object = null):void
{
Alert.show("delete sucessfull")
}
function featureLayer_faultHandler(event:Fault, token:Object = null):void
{
Alert.show("delete failed: " + event.message)
}
}
catch (error:Error)
{
Alert.show("error at deleting process" + error.toString())
}
}
protected function btLoad_clickHandler(event:MouseEvent):void
{
try{
var queryTask:QueryTask = new QueryTask(service);
var query:Query = new Query();
query.where = "1=1";
query.outFields = ['*'];
query.returnGeometry = true;
queryTask.execute(query, new AsyncResponder(onResultQuery, onFaultQuery));
function onResultQuery(featureSet:FeatureSet, token:Object = null):void
{
try
{
var ac:ArrayCollection = new ArrayCollection();
var k:int;
for(k=0;k<featureSet.features.length;k++)
{
var recordGraphic:Graphic = featureSet.features;
ac.addItem({Id:recordGraphic.attributes["objectid"], Name:recordGraphic.attributes["req_type"], gra:recordGraphic });
}
dgFeatures.dataProvider = ac;
}
catch (error:Error)
{
Alert.show("Error processing features")
dgFeatures.dataProvider = null;
}
}
function onFaultQuery(info:Object, token:Object = null) : void
{
Alert.show("query error")
}
}
catch (error:Error)
{
Alert.show("query processing error")
}
}
]]>
</fx:Script>
<viewer:WidgetTemplate id="wTemplate" height="340" width="430">
<mx:Form fontSize="12">
<mx:FormItem horizontalAlign="center">
<s:Button id="btLoad" label="Load" click="btLoad_clickHandler(event)"/>
<mx:DataGrid id="dgFeatures" width="350" height="200" >
<mx:columns>
<mx:DataGridColumn dataField="Id" />
<mx:DataGridColumn dataField="Name" />
</mx:columns>
</mx:DataGrid>
<s:Button id="btDelete" label="Delete" click="btDelete_clickHandler(event)"/>
</mx:FormItem>
</mx:Form>
</viewer:WidgetTemplate>
</viewer:BaseWidget>