Extjs связанные комбо - пусть родительские значения имеют одинаковые дочерние значения - PullRequest
0 голосов
/ 05 октября 2011

У меня есть связанные комбо, которые работают, если родительское значение имеет уникальный идентификатор. Тем не менее, у меня есть 4 опции в родительском комбо, которые должны иметь то же значение для дочернего комбо. Я дал им один и тот же идентификатор в магазине, но значение в комбо не меняется, когда я выбираю любой из них.

Есть ли способ сделать это без дублирования всех значений?

Магазины

var fields = [
              ["s","Name"],
              ["s","ID"],
              ["cc","City"],
              ["s","Cost"],
              ["r","Status"]
              ];

var operators =[
                [1, "s","begins with"],
                [2, "s","equals"],
                [3, "s","contains"],
                [4, "s","ends with"],
                [5, "cc", "equals"],
                [6, "r", "equals"]
                ];

Комбо

xtype:'combo',                             
                        id: 'fieldSelecCmb1',                                                   
                        width: 125,                                     
                        displayField: 'field',
                        valueField: 'fid',                      
                        hideLabel: true,  
                        store: storeField ,
                        triggerAction: 'all',
                        mode: 'local',
                        value: "Choose a field",
                        listeners:{ 
                            select: { 
                                fn:function(combo, value){                                         
                                    var id = combo.id;
                                    var rowNo = id.charAt(id.length-1);
                                    var opCombo = Ext.getCmp("optionSelectCmb"+rowNo);
                                    opCombo.clearValue();
                                    opCombo.store.filter("fid", combo.getValue());                                 

                                }  
                            }

1 Ответ

0 голосов
/ 05 октября 2011

Вместо этого вы можете использовать функцию filterBy.Вот как:

    opCombo.store.filterBy( function(record, id) {
      if((record.data.id == 1 || record.data.id == 2) && (this.id == 1 || this.id == 2)) {
    // specify index that you want to exclude when getting say parent combo value 1 or 2
          return false; // excludes the record in the store
      } else {
          return true; // includes the record in the store.
      }
    } , combo );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...