//Add Latest RiverStages CSV Layers
   var riverCSVtemplate = new InfoTemplate();
   riverCSVtemplate.setContent(getriverCSVTextContent);
          var LatestRiverStages = new CSVLayer("./data/riverquery.csv",{id:"LatestRiverStages",mode: FeatureLayer.MODE_SELECTION,outFields: ["*"],infoTemplate: riverCSVtemplate});
   
                        var Green = new Color([0, 255, 0, 1.0]);
   var labelField = "value";
   var symbol = new TextSymbol();
   symbol.setAlign = TextSymbol.ALIGN_MIDDLE;
   var font  = new Font();
   font.setSize("8pt");
   font.setWeight(Font.WEIGHT_BOLD);
   symbol.setFont(font)
   symbol.setText("${" + labelField + "}")
   symbol.setColor(new Color(Green));
   var renderer = new SimpleRenderer(symbol);
   LatestRiverStages.setRenderer(renderer);
   map.addLayer(LatestRiverStages);
   // LatestRiverStages.hide();
					
				
			
			
				
			
			
				
			
			
			
			
			
			
		var map, csv;
  require([
    "esri/map", 
    "esri/layers/CSVLayer",
    "esri/Color",
    "esri/graphic",
    "esri/layers/GraphicsLayer",
    "esri/symbols/SimpleMarkerSymbol",
    "esri/renderers/SimpleRenderer",
    "esri/InfoTemplate",
    "esri/urlUtils",
    "esri/symbols/Font", 
    "esri/symbols/TextSymbol",
    "dojo/on",
    "dojo/_base/array",
    "dojo/domReady!"
  ], function(
    Map, CSVLayer, Color, 
    Graphic, GraphicsLayer,
    SimpleMarkerSymbol, SimpleRenderer, 
    InfoTemplate, urlUtils, Font, TextSymbol,
    on, array
  ) {
    urlUtils.addProxyRule({
      proxyUrl: "http://server1/proxy/proxy.ashx",
      urlPrefix: "skinner-lap"
    });
    map = new Map("map", {
      basemap: "gray",
      center: [ -60, -10 ],
      zoom: 4 
    });
    
    csv = new CSVLayer("http://server1/UserData/2.5_week.csv", {
      copyright: "USGS.gov"
    });
    
    csv.on("update-end", function(results){
        var textLayer = new GraphicsLayer();
        
        array.forEach(results.target.graphics, function(feature, index){
            var geom = feature.geometry;
            var displayText = feature.attributes.id;
            
            var font = new Font(
                "12pt",
                Font.STYLE_NORMAL, 
                Font.VARIANT_NORMAL,
                Font.WEIGHT_BOLD,
                "Helvetica"
            );
             
            var textSymbol = new TextSymbol(
                displayText,
                font,
                new Color("#DC143C")
            );
                                    
            textLayer.add(new Graphic(geom, textSymbol));
        });
        
        map.addLayer(textLayer);
    });                                
    
    var blank = new Color([0, 0, 0, 0]); // hex is #ff4500
    var marker = new SimpleMarkerSymbol("solid", 0, null, blank);
    var renderer = new SimpleRenderer(marker);
    csv.setRenderer(renderer);
    map.addLayer(csv);    
  });
					
				
			
			
				
			
			
				
			
			
			
			
			
			
		
//Add Latest RiverStages CSV Layers
   var riverCSVtemplate = new InfoTemplate();
   riverCSVtemplate.setContent(getriverCSVTextContent);
      var LatestRiverStages = new CSVLayer("symGSPHydroViewer/data/riverquery.csv",{id:"LatestRiverStages",mode: FeatureLayer.MODE_SELECTION,outFields: ["*"],infoTemplate: riverCSVtemplate});
   
   console.log("HERE1");
   LatestRiverStages.on("update-end", function(results){
   var textLayer = new GraphicsLayer();
   console.log("HERE2");
   array.forEach(results.target.graphics, function(feature, index){
   console.log("HERE3");
            var geom = feature.geometry;
            var displayText = feature.attributes.value;
            var font = new Font(
                "12pt",
                Font.STYLE_NORMAL, 
                Font.VARIANT_NORMAL,
                Font.WEIGHT_BOLD,
                "Helvetica"
            );
             
            var textSymbol = new TextSymbol(
                displayText,
                font,
                new Color("#DC143C")
            );
                                    
            textLayer.add(new Graphic(geom, textSymbol));
   });
        
   map.addLayer(textLayer);
   });                                
    
   console.log("HERE4");
   var blank = new Color([0, 0, 0, 0]); // hex is #ff4500
   var marker = new SimpleMarkerSymbol("solid", 0, null, blank);
   var renderer = new SimpleRenderer(marker);
   LatestRiverStages.setRenderer(renderer);
   map.addLayer(LatestRiverStages);   
   console.log("HERE5");
Hi Charles,
Using the 'update-end' event for the CSVLayer class, I was able to obtain the feature's attributes, and then use this as a TextSymbol. Here is the code I used:var map, csv; require([ "esri/map", "esri/layers/CSVLayer", "esri/Color", "esri/graphic", "esri/layers/GraphicsLayer", "esri/symbols/SimpleMarkerSymbol", "esri/renderers/SimpleRenderer", "esri/InfoTemplate", "esri/urlUtils", "esri/symbols/Font", "esri/symbols/TextSymbol", "dojo/on", "dojo/_base/array", "dojo/domReady!" ], function( Map, CSVLayer, Color, Graphic, GraphicsLayer, SimpleMarkerSymbol, SimpleRenderer, InfoTemplate, urlUtils, Font, TextSymbol, on, array ) { urlUtils.addProxyRule({ proxyUrl: "http://server1/proxy/proxy.ashx", urlPrefix: "skinner-lap" }); map = new Map("map", { basemap: "gray", center: [ -60, -10 ], zoom: 4 }); csv = new CSVLayer("http://server1/UserData/2.5_week.csv", { copyright: "USGS.gov" }); csv.on("update-end", function(results){ var textLayer = new GraphicsLayer(); array.forEach(results.target.graphics, function(feature, index){ var geom = feature.geometry; var displayText = feature.attributes.id; var font = new Font( "12pt", Font.STYLE_NORMAL, Font.VARIANT_NORMAL, Font.WEIGHT_BOLD, "Helvetica" ); var textSymbol = new TextSymbol( displayText, font, new Color("#DC143C") ); textLayer.add(new Graphic(geom, textSymbol)); }); map.addLayer(textLayer); }); var blank = new Color([0, 0, 0, 0]); // hex is #ff4500 var marker = new SimpleMarkerSymbol("solid", 0, null, blank); var renderer = new SimpleRenderer(marker); csv.setRenderer(renderer); map.addLayer(csv); });
   function getriverCSVTextContent (graphic) {
                        var attributes = graphic.attributes;
   var value = "Obs Value: " + attributes.value;
   var validtime = "Valid Time: " + attributes.validtime;
   return value + "</b><br />" + validtime
   }
					
				
			
			
				
			
			
				
			
			
			
			
			
			
		Hi Charles,
When are you calling this function? Can you post your code and possibly the CSV file you are using?
   //Add Latest RiverStages CSV Layers
   var riverCSVtemplate = new InfoTemplate();
   riverCSVtemplate.setContent(getriverCSVTextContent);
      var LatestRiverStages = new CSVLayer("symGSPHydroViewer/data/riverquery.csv",{id:"LatestRiverStages",mode: FeatureLayer.MODE_SELECTION,outFields: ["*"],infoTemplate: riverCSVtemplate});
   
   console.log("HERE1");
   LatestRiverStages.on("update-end", function(results){
   var textLayer = new GraphicsLayer();
   console.log("HERE2");
   arrayUtils.forEach(results.target.graphics, function(feature, index){
   console.log("HERE3");
            var geom = feature.geometry;
            var displayText = feature.attributes.value;
            var font = new Font(
                "12pt",
                Font.STYLE_NORMAL, 
                Font.VARIANT_NORMAL,
                Font.WEIGHT_BOLD,
                "Helvetica"
            );
             
            var textSymbol = new TextSymbol(
                displayText,
                font,
                new Color("#DC143C")
            );
                                    
            textLayer.add(new Graphic(geom, textSymbol));
   });
        
   map.addLayer(textLayer);
   });                                
    
   console.log("HERE4");
   var blank = new Color([0, 0, 0, 0]); // hex is #ff4500
   var marker = new SimpleMarkerSymbol("solid", 0, null, blank);
   var renderer = new SimpleRenderer(marker);
   LatestRiverStages.setRenderer(renderer);
   map.addLayer(LatestRiverStages); 
   console.log("HERE5");
   
   
   function getriverCSVTextContent (graphic) {
   console.log("sample");
            var attributes = graphic.attributes;
   var value = "Obs Value: " + attributes.value;
   var validtime = "Valid Time: " + attributes.validtime;
   return value + "</b><br />" + validtime
   }
					
				
			
			
				
			
			
				
			
			
			
			
			
			
		