Solved! Go to Solution.
var template = new esri.InfoTemplate();
var featureLayer = new esri.layers.FeatureLayer("http://servicesbeta.esri.com/ArcGIS/rest/services/SanFrancisco/SFStreetTreesRendered/MapServer/0",{
id: "My Feature Layer Name",
mode: esri.layers.FeatureLayer.MODE_SELECTION,
outFields: ["*"],
infoTemplate:template
});
//first pass infoTemplate, then instantiate feature layer, then set title using id
template.setTitle(featureLayer.id);
connect.connect(map, "onClick", executeIdentifyTask);
identifyTask = new esri.tasks.IdentifyTask(parameters.url);
identifyParams = new esri.tasks.IdentifyParameters();
identifyParams.tolerance = 3;
identifyParams.returnGeometry = true;
//identifyParams.layerIds = [0, 117];
identifyParams.layerIds = myLayer.visibleLayers;
identifyParams.layerOption = esri.tasks.IdentifyParameters.LAYER_OPTION_ALL;
identifyParams.width = map.width;
identifyParams.height = map.height;
map.infoWindow.resize(415, 200);
map.infoWindow.setTitle("Results");
function executeIdentifyTask(evt) {
identifyParams.geometry = evt.mapPoint;
identifyParams.mapExtent = map.extent;
identifyParams.layerIds = myLayer.visibleLayers; //in case the visible layers have changed for the layer
var deferred = identifyTask.execute(identifyParams);
deferred.addCallback(function (response) {
return dojo.map(response, function (result) {
var feature = result.feature;
var infoTemplate = new esri.InfoTemplate("test", "${*}");
var contentString = "";
var sp = new Array();
var sp = feature.attributes;
contentString += "<b>" + result.layerName + "</b><hr width = '90%'>";
for (x in sp) {
contentString += x + ": " + feature.attributes + "<br/>";
}
var infoTemplate = new esri.InfoTemplate();
var titleText = "<div>" + "Title" + "</div>"
infoTemplate.setTitle(titleText);
infoTemplate.setContent(contentString);
feature.setInfoTemplate(infoTemplate);
return feature;
});
});
map.infoWindow.setFeatures([deferred]);
map.infoWindow.show(evt.mapPoint);
}
One option is to define a function that will generate your popup content using setContent. Then you can use the graphic.getLayer method to retrieve the graphics layer name. Here's an example that shows how this works:
http://jsfiddle.net/AddHT/