function createSchoolList (results) { var resultsLength = results.featureSet.features.length; var data = []; var schoolFeatures = results.featureSet.features; if (dGridStacked) { dGridStacked.refresh(); } if (dGridTable) { dGridTable.refresh(); } data = arrayUtil.map(results, function(schoolFeatures){ return { 'facility': schoolFeatures.attributes[Facility], 'address': schoolFeatures.attributes[Address], 'city': schoolFeatures.attributes[City], }; }); dGridStacked = new dgrid.Grid({ renderRow: renderRowFunction, showHeader: true }, "searchResultsGrid"); dGridStacked.startup(); dGridStacked.renderArray(data); dGridStacked.sort('facility'); dGridStacked.on('.dgrid-row:click', function(event){ highlightGridSelection(event, dGridStacked); }); console.log(data); } function renderRowFunction (obj,options) { var template = '<div class="title">${0}</div><div class="details">Address: ${1}</div> <div class="details">City: ${2}</div>'; return dojo.create("div",{ innerHTML : dojo.string.substitute(template,[obj.facility,obj.address,obj.city]) }); }
Solved! Go to Solution.
data = arrayUtil.map(results.featureSet.features, function(feature){ return { 'facility': feature.attributes.Facility, 'address': feature.attributes.Address, 'city': feature.attributes.City, };
var columns = buildColumns(results[0].feature); //builds the column list from the first feature
var features = [];
for (i = 0, len = results.length; i < len; i++) {
features.push(results.feature);
}
var data = array.map(features, function (feature) {
return lang.clone(feature.attributes);
});
var dataGrid = new (declare([Grid, Selection, DijitRegistry, ColumnHider]))({
id: "dgrid_0",
bufferRows: Infinity,
columns: columns,
selectionMode: "single",
"class": "resultsGrid"
});
var gridWidth = "width: " + String(columns.length * 100) + "px";
dataGrid.addCssRule("#" + dataGrid.id, gridWidth); //this makes the dgrid large enough to show all the columns
dataGrid.on(".dgrid-row:click", gridSelect); //this flashes the feature
dataGrid.on("show", function () {
dataGrid.resize();
});
dataGrid.on(mouseUtil.enterRow, gridEnter); //this highlights the feature
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 + ")",
title: combineResults[result][0].layerId,
style: "overflow: auto"
}).placeAt(dijit.byId('tabs'));
cp.addChild(dataGrid);
cp.startup();
dataGrid.renderArray(data);
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;
}
data = arrayUtil.map(results, function(schoolFeatures){
return {
'facility': schoolFeatures.attributes[Facility],
'address': schoolFeatures.attributes[Address],
'city': schoolFeatures.attributes[City],
};
}); data = arrayUtil.map(results.featureSet.features, function(schoolFeature){
return {
'facility': schoolFeature.attributes[Facility],
'address': schoolFeature.attributes[Address],
'city': schoolFeature.attributes[City],
};
});
data = arrayUtil.map(results.featureSet.features, function(feature){ return { 'facility': feature.attributes.Facility, 'address': feature.attributes.Address, 'city': feature.attributes.City, };function createSchoolList (results) {
var resultsLength = results.featureSet.features.length;
var schoolList = {};
if (dGridStacked) {
dGridStacked.refresh();
}
if (dGridTable) {
dGridTable.refresh();
}
schoolList.data = arrayUtils.map(results.featureSet.features, function(feature){
return {
"facility": feature.attributes["Facility"],
"address": feature.attributes["Address"],
"city": feature.attributes["City"]
};
});
dGridStacked = new dgrid.Grid({
renderRow: renderRowFunction,
showHeader: true
}, "searchResultsGrid");
dGridStacked.startup();
dGridStacked.renderArray(schoolList.data);
dGridStacked.sort('facility');
dGridStacked.on('.dgrid-row:click', function(event){
highlightGridSelection(event, dGridStacked);
});
queryDistrict();
}