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);