So try adding some other layer, configure an infoWindow, and see how nicely infoWindows display when you first click on an editable layer, and then on a non-editable layer. He's the code I added to yours to replicate, and then the full code at the bottom:1. Set a new infoTemplatetemplate = new esri.InfoTemplate();
template.setTitle('<div>thang</div>');
template.setContent('<div id="infoWindowContents"></div>');
2 Add a featureLayer, in my case the USGS stream flow stations:var streamFlowURL = "http://rmgsc.cr.usgs.gov/ArcGIS/rest/services/nhss_usdata/MapServer/0";
var streamFlowLayer = new esri.layers.FeatureLayer(streamFlowURL,{
mode:esri.layers.FeatureLayer.MODE_ONDEMAND,
outFields:["*"],
infoTemplate: template
});
3 Add the layer, set a renderer and an onclick listener:map.addLayer(streamFlowLayer);
var streamSymbol = new esri.symbol.SimpleMarkerSymbol(esri.symbol.SimpleMarkerSymbol.STYLE_SQUARE, 20, new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID, new dojo.Color([0,0,0]), 1), new dojo.Color([0,255,0,1]));
var streamRenderer = new esri.renderer.SimpleRenderer(streamSymbol);
streamFlowLayer.renderer = streamRenderer;
dojo.connect(streamFlowLayer, "onClick", streamPopup);
4. Create the function to populate the infoWindowfunction streamPopup(evt){
//template.setContent('<div id="infoWindowContents"></div>');
graphic = evt.graphic;
attr = graphic.attributes;
var content = "";
content += '<b>UR</b>:' + attr.STANAME;
//dojo.byId('infoWindowContents').innerHTML = content;
//esri.show(dojo.byId("infoWindowContents"));
var title = 'Stream Guage ' + attr.STAID;
map.infoWindow.resize(300,200);
template.setTitle(title);
template.setContent(content);
//dojo.byId('infoWindowContents').innerHTML = content;
//esri.show(dojo.byId("infoWindowContents"));
var screenPoint = evt.screenPoint;
map.infoWindow.show(evt.graphic.geometry, map.getInfoWindowAnchor(screenPoint));
}
You can see by the comments that I played around a little bit with trying to set content by the div id, or just by modifying the template directly. Neither worked.Here is my full code:<!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.8/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.8"></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;
}
#panelHeader
{
background-color: #92A661;
border-bottom: solid 1px #92A860;
color: #FFF;
font-size: 18px;
height: 24px;
line-height: 22px;
margin: 0;
overflow: hidden;
padding: 10px 10px 10px 10px;
}
#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;
}
.dj_ie .infowindow .window .top .right .user .content, .dj_ie .simpleInfoWindow .content
{
position: relative;
}
</style>
<script type="text/javascript">
dojo.require("esri.dijit.editing.Editor-all");
dojo.require("dijit.layout.BorderContainer");
dojo.require("dijit.layout.ContentPane");
dojo.require("esri.SnappingManager");
dojo.require("esri.layers.FeatureLayer");
var map, template, editorWidget;
function init() {
esri.bundle.toolbars.draw.start = esri.bundle.toolbars.draw.start + "<br/>Press <b>CTRL</b> to enable snapping";
esri.bundle.toolbars.draw.addPoint = esri.bundle.toolbars.draw.addPoint + "<br/>Press <b>CTRL</b> to enable snapping";
esri.config.defaults.io.proxyUrl = "http://le/proxy/net/silverlight/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": 102100
}
});
map = new esri.Map("map", {
extent: extent
});
template = new esri.InfoTemplate();
template.setTitle('<div>thang</div>');
template.setContent('<div id="infoWindowContents"></div>');
dojo.connect(map, "onLoad", function () {
//resize the map when the browser resizes
dojo.connect(dijit.byId('map'), 'resize', map, map.resize);
});
dojo.connect(map, "onLayersAddResult", initEditing);
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: ["*"]
});
var streamFlowURL = "http://rmgsc.cr.usgs.gov/ArcGIS/rest/services/nhss_usdata/MapServer/0";
var streamFlowLayer = new esri.layers.FeatureLayer(streamFlowURL,{
mode:esri.layers.FeatureLayer.MODE_ONDEMAND,
outFields:["*"],
infoTemplate: template
});
map.addLayers([operationsPointLayer, operationsPolygonLayer, operationsLineLayer]);
map.addLayer(streamFlowLayer);
var streamSymbol = new esri.symbol.SimpleMarkerSymbol(esri.symbol.SimpleMarkerSymbol.STYLE_SQUARE, 20, new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID, new dojo.Color([0,0,0]), 1), new dojo.Color([0,255,0,1]));
var streamRenderer = new esri.renderer.SimpleRenderer(streamSymbol);
streamFlowLayer.renderer = streamRenderer;
dojo.connect(streamFlowLayer, "onClick", streamPopup);
}
function streamPopup(evt){
//template.setContent('<div id="infoWindowContents"></div>');
graphic = evt.graphic;
attr = graphic.attributes;
var content = "";
content += '<b>UR</b>:' + attr.STANAME;
//dojo.byId('infoWindowContents').innerHTML = content;
//esri.show(dojo.byId("infoWindowContents"));
var title = 'Stream Guage ' + attr.STAID;
map.infoWindow.resize(300,200);
template.setTitle(title);
template.setContent(content);
//dojo.byId('infoWindowContents').innerHTML = content;
//esri.show(dojo.byId("infoWindowContents"));
var screenPoint = evt.screenPoint;
map.infoWindow.show(evt.graphic.geometry, map.getInfoWindowAnchor(screenPoint));
}
function initEditing(results) {
var featureLayerInfos = dojo.map(results, function (result) {
return {
'featureLayer': result.layer
};
});
var settings = {
map: map,
layerInfos: featureLayerInfos
};
var params = {
settings: settings
};
var editorWidget = new esri.dijit.editing.Editor(params, 'editorDiv');
var options = { snapKey: dojo.keys.copyKey };
map.enableSnapping(options);
editorWidget.startup();
}
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'">
<div id="panelHeader">
Default Editor
</div>
<div style="padding: 10px;" id="editorDiv">
</div>
</div>
</div>
</body>
</html>
Thanks for any assistance you might be able to provide.... (I'm using 2.8 of the API)