this may be more a Dojo question than ArcGIS, but I am not sure if the Javascript API is related to this issue.
I am trying to alphabetically sort a Dojo store and show these items in a dropdown list, based on this example: http://dojotoolkit.org/reference-guide/1.8/dojo/data/ItemFileReadStore.html
I can see in Firebug that my list is being sorted, but the sorted list is not displayed in the dropdown menu; the items there are still sorted by ObjectID. I am not sure if I need to run my 'set' function differently, or if I am missing some code to replace the store list with the newly sorted list...ideas? // Jason
code:
var dataItems = {
identifier: 'name',
label: 'name',
items: values,
};
var menuStore = new dojo.data.ItemFileReadStore({ data: dataItems });
menuStore.comparatorMap = {};
menuStore.comparatorMap['name']=function(a,b){
if(a<b) return -1;
if(a>b) return 1;
return 0;
};
var sortAttributes = [{attribute: "name", ascending: true}];
function completed(items, findResult){
for(var i = 0; i < items.length; i++)
{
var value = menuStore.getValue(items[i], "name");
console.log("Item ID: [" + menuStore.getValue(items[i], "name"));
//// this console statement produces a sorted list in Firebug ////
}
}
function error(errData, request){
console.log("Failed in sorting data.");
}
menuStore.fetch({onComplete: completed, onError: error, sort: sortAttributes});
// dijit.byId("schoolMenu").store = menuStore; // may need this if an older version of API is used
dijit.byId("schoolMenu").set ("store", menuStore); // schoolMenu is dropdown menu
} // end function