i did something similar and got the same error... heh. now i cannot remember what i did to fix it, but here is a snippet of my code:
function openEdit(){
editLayersAdded = dojo.connect(map,'onLayersAddResult',addEditor);
StructurePoints = new esri.layers.FeatureLayer(STRUCTPOINTSERV, {
mode: esri.layers.FeatureLayer.MODE_ONDEMAND,
outFields: ["*"]
});
RecPolygon = new esri.layers.FeatureLayer(RECPOLYSERV, {
mode: esri.layers.FeatureLayer.MODE_ONDEMAND,
outFields: ["*"]
});
map.addLayers([StructurePoints,RecPolygon]);
}
function closeEditor(){
if(editIsOn){
dojo.disconnect(editLayersAdded);
map.removeLayer(StructurePoints);
map.removeLayer(RecPolygon);
myEditor.destroy();
}
}
function addEditor(r){
var contentHolder = "<div id='editorDiv'></div><div id='tmpDiv'></div>";
$j('##editDiv').append(contentHolder);
var templateLayers = dojo.map(r,function(result){
return result.layer;
});
var widget = new esri.dijit.editing.TemplatePicker({
featureLayers: templateLayers,
grouping: true,
rows: 'auto',
columns: 3
},'tmpDiv');
widget.startup();
var layers = dojo.map(r, function(result) {
return {featureLayer:result.layer};
});
var settings = {
map: map,
templatePicker: widget,
geometryService: new esri.tasks.GeometryService(GEOSERVICE),
layerInfos:layers,
toolbarVisible: true,
createOptions: {
polylineDrawTools:[ esri.dijit.editing.Editor.CREATE_TOOL_FREEHAND_POLYLINE],
polygonDrawTools: [ esri.dijit.editing.Editor.CREATE_TOOL_FREEHAND_POLYGON,
esri.dijit.editing.Editor.CREATE_TOOL_CIRCLE,
esri.dijit.editing.Editor.CREATE_TOOL_TRIANGLE,
esri.dijit.editing.Editor.CREATE_TOOL_RECTANGLE ]
},
toolbarOptions: {
reshapeVisible: true
}
};
var params = {settings: settings};
myEditor = new esri.dijit.editing.Editor(params,'editorDiv');
myEditor.startup();
}
basically my editor is now in an accordion container... when the users switch accordion panels, it turns on/off the editor.you can ignore the double # signs... i use coldfusion as a backend... and am 'escaping' the # character used by cf.