function queryGeometryResultsHandler_toGrid(results, idx) { //format the data for the data grid var dataList = {}; dataList.data = arrayUtils.map(results.features, function(feature){ return feature.attributes; }); var currentMemory = new Memory({data:dataList.data, idProperty:'OBJECTID'}); var gridcolumns = []; for (attName in dataList.data[0]) { if (attName != "Shape" && attName !== "Shape.area" && attName !== "Shape.len") { var objects = {}; objects.label = attName; objects.field = attName; gridcolumns.push(objects); } } //create a titlePane in the floatingPane for each visible layer var currentLayerId = qTaskNameList[idx];//a list of layers created in query task functions var paneTitle = (currentLayerId.split('_').join(' '))+" ("+results.features.length+")";//formats string to look nice tp = new TitlePane({ id: 'gridPane_'+currentLayerId, title: paneTitle, splitter:true, class:'reportTitlePane'}); registry.byId("reportContainer").addChild(tp); tp.startup(); // Create Grid using structure and data defined above grid = new Grid({id:currentLayerId+'_grid', autoHeight:true, columns:gridcolumns, store:currentMemory} ); //dgrid grid.startup(); if (results.features.length > 0) { tp.set("content", grid); }else { tp.set("content", "No features found"); } }
Solved! Go to Solution.
var objects = {}instead.
var columns = [ { field: "first", label: "First Name" }, { field: "last", label: "Last Name" }, { field: "age", label: "Age" } ];
var columns = { first: { label: "First Name" }, last: { label: "Last Name" }, age: { label: "Age" } };
var columns = { first: "First Name", last: "Last Name", age: "Age" };
gridcolumns [Object { label="OBJECTID", field="OBJECTID" }, Object { label="CtyDist", field="CtyDist" }, Object { label="Facility" , field="Facility" }, Object { label="Address" , field="Address" }
function populateTC(results, evt) { try { if (dijit.byId('tabs').hasChildren) { dijit.byId('tabs').destroyDescendants(); } if (results.length === 0) { console.log('Nothing found.'); return; } var combineResults = {}; for (var i = 0, len = results.length; i < len; i++) { var result = results; var feature = result.feature; var lyrName = result.layerName.replace(' ', ''); if (combineResults.hasOwnProperty(lyrName)) { combineResults[lyrName].push(result); } else { combineResults[lyrName] = [result]; } switch (feature.geometry.type) { case "point": case "multipoint": layerResultsGraphic.add(new esri.Graphic(feature.geometry, symbolResultPoint, feature.attributes)); break; case "polyline": layerResultsGraphic.add(new esri.Graphic(feature.geometry, symbolResultPolyline, feature.attributes)); break; case "polygon": case "extent": layerResultsGraphic.add(new esri.Graphic(feature.geometry, symbolResultPolygon, feature.attributes)); break; } } for (result in combineResults) { if (combineResults.hasOwnProperty(result)) { var columns = buildColumns(combineResults[result][0].feature); var features = []; for (i = 0, len = combineResults[result].length; i < len; i++) { features.push(combineResults[result].feature); } var data = array.map(features, function (feature) { return lang.clone(feature.attributes); }); var dataGrid = new (declare([Grid, Selection, DijitRegistry, ColumnHider]))({ id: "dgrid_" + combineResults[result][0].layerId, bufferRows: Infinity, columns: columns, selectionMode: "single", "class": "resultsGrid" }); var gridWidth = "width: " + String(columns.length * 100) + "px"; dataGrid.addCssRule("#" + dataGrid.id, gridWidth); dataGrid.on(".dgrid-row:click", gridSelect); dataGrid.on("show", function () { dataGrid.resize(); }); dataGrid.on(mouseUtil.enterRow, gridEnter); dataGrid.on(mouseUtil.leaveRow, function () { map.graphics.clear(); }); var plural = ""; if (combineResults[result].length !== 1) { plural = "s"; } var cp = new dijit.layout.ContentPane({ id: result, content: "<strong>" + combineResults[result][0].layerName + "</strong> (" + combineResults[result].length + " feature" + plural + ")", //content: dataGrid, title: combineResults[result][0].layerId, style: "overflow: auto" }).placeAt(dijit.byId('tabs')); cp.addChild(dataGrid); cp.startup(); dataGrid.renderArray(data); } } tc.startup(); tc.resize(); map.infoWindow.show(evt.screenPoint, map.getInfoWindowAnchor(evt.screenPoint)); } catch (e) { console.log(e.message); } } function buildColumns(feature) { var attributes = feature.attributes; var columns = []; for (var attribute in attributes) { if (attributes.hasOwnProperty(attribute)) { var objects = {}; objects.label = attribute; objects.field = attribute; if (attribute === "Shape") { objects.hidden = true; } columns.push(objects); } } return columns; }
var gridWidth = "width: " + String(columns.length * 100) + "px"; dataGrid.addCssRule("#" + dataGrid.id, gridWidth);