ExtJs ComboBox unique values
I have a ComboBox with data coming from a JsonStore.
A sample of data is this:
var datiCombo = [
{"Fiume":"Chiascio","Comune":"Gubbio"},
{"Fiume":"Tevere","Comune":"Perugia"},
开发者_StackOverflow中文版 {"Fiume":"Tevere","Comune":"Roma"},
];
If I use the column "Fiume" for my ComboBox, I have got 2 entries "Tevere". Is there a way to populate ComboBox and show only unique values?
Thank you very much
Ok, so i wouldn't suggest to filter the duplicates, instead redefine the data you are getting from json. I guess you will also use the "comune" data for other combobox or something so by filtering the duplicates the only bond between the "fiume" and the "comune" will be by searching by the name.
I propose you redifine the data in something like
var fiume = [{"id":1,"name":"chiascio"},
{"id":2,"name":"Tevere"}];
var comune =[{"name":"Gubbio", "fiumeId":1},
{"name":"Perugia", "fiumeId":2},
{"name":"Roma", "fiumeId":2)];
It's just a suggestion, I think it would be more easy to manage a change in selection.
http://jsfiddle.net/KXPQn/ Hope this helps.
var datiCombo = [
{"Fiume":"Chiascio","Comune":"Gubbio"},
{"Fiume":"Tevere","Comune":"Perugia"},
{"Fiume":"Tevere","Comune":"Roma"},
];
contains = function(array, entry){
for (var j = 0; j<array.length; j++){
if (array[j]["Fiume"]==entry){
return true;
};
};
return false;
}
var comboData = [];
for (var i = 0; i < datiCombo.length; i++){
if (contains(comboData, datiCombo[i]["Fiume"])== false){
comboData.push(datiCombo[i]);
};
};
console.log(comboData);
精彩评论