Here's a quick code snippet that shows creating/destroying the editor:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=7, IE=9" />
<title>
Default Editor
</title>
<link rel="stylesheet" type="text/css" href="http://serverapi.arcgisonline.com/jsapi/arcgis/2.4/js/dojo/dijit/themes/claro/claro.css">
<script type="text/javascript">
dojoConfig = {
parseOnLoad: true
};
</script>
<script type="text/javascript" src="http://serverapi.arcgisonline.com/jsapi/arcgis/?v=2.4">
</script>
<style type="text/css">
html,body {
height:100%;
width:100%;
margin:0;
}
body {
background-color:#fff;
overflow:hidden;
font-family:Helvetica;
}
#templatePickerPane {
width:225px;
overflow:hidden;
}
#map {
margin-right:5px;
padding:0;
}
.esriEditor .templatePicker {
padding-bottom:5px;
padding-top:5px;
height:500px;
border-radius:0px 0px 4px 4px;
border:solid 1px #92A661;
}
</style>
<script type="text/javascript">
dojo.require("esri.dijit.editing.Editor-all");
dojo.require("dijit.layout.BorderContainer");
dojo.require("dijit.layout.ContentPane");
var map, resizeTimer;
var editorWidget;
var editLayers;
function init() {
esri.config.defaults.io.proxyUrl = "../proxy/proxy.ashx";
esri.config.defaults.geometryService = new esri.tasks.GeometryService("http://tasks.arcgisonline.com/ArcGIS/rest/services/Geometry/GeometryServer");
var extent = new esri.geometry.Extent({
"xmin": -8576501,
"ymin": 4705377,
"xmax": -8574612,
"ymax": 4706867,
"spatialReference": {
"wkid": 3857
}
});
map = new esri.Map("map", {
extent: extent
});
dojo.connect(map, "onLoad", function() {
dojo.connect(dijit.byId('map'), 'resize', function() {
resizeMap();
});
});
dojo.connect(map, "onLayersAddResult", getEditableLayers);
var basemap = new esri.layers.ArcGISTiledMapServiceLayer("http://server.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer");
map.addLayer(basemap);
var operationsPointLayer = new esri.layers.FeatureLayer("http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/HomelandSecurity/operations/FeatureServer/0", {
mode: esri.layers.FeatureLayer.MODE_ONDEMAND,
outFields: ["*"]
});
var operationsLineLayer = new esri.layers.FeatureLayer("http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/HomelandSecurity/operations/FeatureServer/1", {
mode: esri.layers.FeatureLayer.MODE_ONDEMAND,
outFields: ["*"]
});
var operationsPolygonLayer = new esri.layers.FeatureLayer("http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/HomelandSecurity/operations/FeatureServer/2", {
mode: esri.layers.FeatureLayer.MODE_ONDEMAND,
outFields: ["*"]
});
map.addLayers([operationsPointLayer, operationsPolygonLayer, operationsLineLayer]);
map.infoWindow.resize(400, 300);
}
function getEditableLayers(results) {
editLayers = dojo.map(results, function(result) {
return {
'featureLayer': result.layer
};
});
}
//Functions to create and destroy the editor. We do this each time the edit button is clicked.
function createEditor() {
if (editorWidget) {
return;
}
if (editLayers.length > 0) {
//create template picker
var templateLayers = dojo.map(editLayers, function (layer) {
return layer.featureLayer;
});
var eDiv = dojo.create("div", {
id: "editDiv"
});
dojo.byId('templatePickerPane').appendChild(eDiv);
var editLayerInfo = editLayers;
var templatePicker = new esri.dijit.editing.TemplatePicker({
featureLayers: templateLayers,
rows: 'auto',
columns: 'auto',
style: 'height:98%;width:98%;'
}, 'editDiv');
templatePicker.startup();
var settings = {
map: map,
templatePicker: templatePicker,
layerInfos: editLayerInfo,
toolbarVisible: false
};
var params = {
settings: settings
};
editorWidget = new esri.dijit.editing.Editor(params);
editorWidget.startup();
}
}
function destroyEditor() {
if (editorWidget) {
editorWidget.destroy();
editorWidget = null;
}
}
//Handle resize of browser
function resizeMap() {
clearTimeout(resizeTimer);
resizeTimer = setTimeout(function() {
map.resize();
map.reposition();
}, 500);
}
dojo.addOnLoad(init);
</script>
</head>
<body class="claro">
<div id="mainWindow" data-dojo-type="dijit.layout.BorderContainer" data-dojo-props="design:'headline',gutters:false" style="width:100%; height:100%;">
<div id="map" data-dojo-type="dijit.layout.ContentPane" data-dojo-props="region:'center'">
</div>
<div data-dojo-type="dijit.layout.ContentPane" id="templatePickerPane" data-dojo-props="region:'left'">
<input type="button" onclick="createEditor();" value="Create Editor"/>
<input type="button" onclick="destroyEditor();" value="Destroy Editor"/>
</div>
</div>
</body>
</html>