layers[layerId].LayerVariable.queryFeatures(query, function (featureSet) {
resultFeatures = featureSet.features;
var items = dojo.map(featureSet.features, function (feature) {
return feature.attributes;
});
var data = {
identifier: "OBJECTID",
items: items
};
node = dojo.byId("searchHeader");
var store = new dojo.data.ItemFileReadStore({
data: data
});
grid = new dojox.grid.DataGrid({
store: store,
structure: structure
});
node.appendChild(grid.domNode);
grid.startup();
}
}
});
var allFeatures = {};
layers[layerId].LayerVariable.queryFeatures(query, function (featureSet) {
dojo.forEach(featureSet.features, function(feature) {
allFeatures.push(feature);
});
.
.
.
}You could have a globally declared array and every time the queryFeatures function runs, just push the features it returns into the array. Something like..var allFeatures = {}; layers[layerId].LayerVariable.queryFeatures(query, function (featureSet) { dojo.forEach(featureSet.features, function(feature) { allFeatures.push(feature); }); . . . }
Steve
var allFeatures = [];
//not
var allFeatures = {};if you'd like to create an empty array object, you should be using brackets. curly braces are reserved for object literals.var allFeatures = []; //not var allFeatures = {};
not sure if that explains why what you have is empty later though..