【问题标题】:ExtJs ComboBox unique valuesExtJs ComboBox 唯一值
【发布时间】:2011-10-20 14:44:42
【问题描述】:

我有一个 ComboBox,其中的数据来自 JsonStore。

数据样本如下:

var datiCombo = [
        {"Fiume":"Chiascio","Comune":"Gubbio"},
        {"Fiume":"Tevere","Comune":"Perugia"},
        {"Fiume":"Tevere","Comune":"Roma"},
];

如果我为我的 ComboBox 使用列“Fiume”,我有 2 个条目“Tevere”。有没有办法填充 ComboBox 并仅显示唯一值?

非常感谢

【问题讨论】:

    标签: extjs combobox


    【解决方案1】:

    http://jsfiddle.net/KXPQn/希望这会有所帮助。

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

    【讨论】:

      【解决方案2】:

      好的,所以我不建议过滤重复项,而是重新定义您从 json 获取的数据。我猜您还会将“comune”数据用于其他组合框或其他内容,因此通过过滤重复项,“fiume”和“comune”之间的唯一联系将是按名称搜索。

      我建议你用类似的方式重新定义数据

      var fiume = [{"id":1,"name":"chiascio"},
                   {"id":2,"name":"Tevere"}];
      var comune =[{"name":"Gubbio", "fiumeId":1},
                   {"name":"Perugia", "fiumeId":2},
                   {"name":"Roma", "fiumeId":2)];
      

      这只是一个建议,我认为管理选择的更改会更容易。

      【讨论】:

        猜你喜欢
        • 2012-09-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-27
        • 2011-10-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多