Does anybody know why the Attribute Inspector does not save the changes? I have used my own data and the example data and both don't work. Do I need to add something to the proxy page perhaps? Thank you!<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=7, IE=9, IE=10"> <!--The viewport meta tag is used to improve the presentation and behavior of the samples on iOS devices--> <meta name="viewport" content="initial-scale=1, maximum-scale=1,user-scalable=no"> <title>Editable FeatureLayer in Selection Only Mode with Attribute Inspector</title> <link rel="stylesheet" href="http://js.arcgis.com/3.7/js/dojo/dijit/themes/claro/claro.css"> <link rel="stylesheet" href="http://js.arcgis.com/3.7/js/esri/css/esri.css" /> <style> html, body { height: 100%; width: 100%; margin: 0; padding: 0; overflow: hidden; } #mapDiv{ margin: 0; padding:0; } #detailPane{ height:20px; color:#570026; font-size:12pt; font-weight:600; overflow:hidden; } .dj_ie .infowindow .window .top .right .user .content { position: relative; } .dj_ie .simpleInfoWindow .content {position: relative;} .esriAttributeInspector {height:100px;} .esriAttributeInspector .atiLayerName {display:none;} .saveButton { padding-left:45px; margin:0px;width:16px; height:16px; } </style> <script src="http://js.arcgis.com/3.7/"></script> <script> var map; var updateFeature; require([ "esri/map", "esri/layers/FeatureLayer", "esri/dijit/AttributeInspector", "esri/symbols/SimpleLineSymbol", "esri/symbols/SimpleFillSymbol", "dojo/_base/Color", "esri/layers/ArcGISDynamicMapServiceLayer", "esri/config", "esri/tasks/query", "dojo/parser", "dojo/dom-construct", "dijit/form/Button", "dijit/layout/BorderContainer", "dijit/layout/ContentPane", "dojo/domReady!" ], function( Map, FeatureLayer, AttributeInspector, SimpleLineSymbol, SimpleFillSymbol, Color, ArcGISDynamicMapServiceLayer, esriConfig, Query, parser, domConstruct, Button ) { parser.parse(); // refer to "Using the Proxy Page" for more information: https://developers.arcgis.com/en/javascript/jshelp/ags_proxy.html esriConfig.defaults.io.proxyUrl = "/proxy"; map = new Map("mapDiv", { basemap: "hybrid", center: [-98.57, 30.98], zoom: 6, slider: true }); map.on("layers-add-result", initSelectToolbar); var petroFieldsMSL = new ArcGISDynamicMapServiceLayer("http://tfsgis-iisd01:6080/arcgis/rest/services/MyMapService2/MapServer"); petroFieldsMSL.setDisableClientCaching(true); map.addLayer(petroFieldsMSL); var petroFieldsFL = new FeatureLayer("http://tfsgis-iisd01:6080/arcgis/rest/services/MyMapService2/FeatureServer/2", { mode: FeatureLayer.MODE_SELECTION, outFields: ["Office", "Forester"] }); var selectionSymbol = new SimpleFillSymbol( SimpleFillSymbol.STYLE_NULL, new SimpleLineSymbol( "solid", new Color("yellow"), 2 ), null ); petroFieldsFL.setSelectionSymbol(selectionSymbol); petroFieldsFL.on("edits-complete", function() { petroFieldsMSL.refresh(); }); map.addLayers([petroFieldsFL]); function initSelectToolbar(evt) { var petroFieldsFL = evt.layers[0].layer; var selectQuery = new Query(); map.on("click", function(evt) { selectQuery.geometry = evt.mapPoint; petroFieldsFL.selectFeatures(selectQuery, FeatureLayer.SELECTION_NEW, function(features) { if (features.length > 0) { //store the current feature updateFeature = features[0]; map.infoWindow.setTitle(features[0].getLayer().name); map.infoWindow.show(evt.screenPoint,map.getInfoWindowAnchor(evt.screenPoint)); } else { map.infoWindow.hide(); } }); }); map.infoWindow.on("hide", function() { petroFieldsFL.clearSelection(); }); var layerInfos = [{ 'featureLayer': petroFieldsFL, 'showAttachments': false, 'isEditable': true, 'fieldInfos': [ {'fieldName': 'Office', 'isEditable':true, 'tooltip': 'Office', 'label':'Office:'}, {'fieldName': 'Forester', 'isEditable':true, 'tooltip': 'Forester', 'label':'Forester:'} ] }]; var attInspector = new AttributeInspector({ layerInfos:layerInfos }, domConstruct.create("div")); //add a save button next to the delete button var saveButton = new Button({ label: "Save", "class": "saveButton"}); domConstruct.place(saveButton.domNode, attInspector.deleteBtn.domNode, "after"); saveButton.on("click", function(){ updateFeature.getLayer().applyEdits(null, [updateFeature], null); }); attInspector.on("attribute-change", function(evt) { //store the updates to apply when the save button is clicked updateFeature.attributes[evt.fieldName] = evt.newFieldValue; }); attInspector.on("next", function(evt) { updateFeature = evt.feature; console.log("Next " + updateFeature.attributes.objectid); }); attInspector.on("delete", function(evt){ evt.feature.getLayer().applyEdits(null,null,[feature]); map.infoWindow.hide(); }); map.infoWindow.setContent(attInspector.domNode); map.infoWindow.resize(350, 240); } }); </script> </head> <body class="claro"> <div data-dojo-type="dijit/layout/BorderContainer" data-dojo-props="design:'headline', gutters:false" style="width:100%;height:100%;"> <div id="detailPane" data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region:'top'"> Click a field to display the attribute inspector with customized fields. </div> <div data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region:'center'" id="mapDiv"></div> </div> </body> </html>