ExtJs Каскадные проблемы - PullRequest
       13

ExtJs Каскадные проблемы

1 голос
/ 30 апреля 2009

У меня есть проблема (возможно, это будет моей ошибкой при использовании ExtJs, я надеюсь, что я это сделаю) с использованием ExtJs для создания каскадных комбинаций в форме. Это ситуация:

  1. У меня есть 3 комбо, зоны, регионы, города
  2. Когда я щелкаю по одному из них по порядку, соответствующий обновляется, выполняя запрос ajax с использованием Json в качестве формата данных (поэтому, даже если я считаю, что это бесполезно, последовательность является нормальной последовательностью Zones -> Regions -> Города)
  3. Даже если это не так важно, я использую серверную часть ASP.NET MVC

Проблема возникает, когда я, в качестве первой операции, которую я делаю, сначала нажимаю на потомка, а затем на родителя, например, если я просто открываю перед областями, а затем открываю зоны и выбираю одну, надеюсь, она заполнит Регионы хорошо .. но ничего не происходит. В этом случае также ajax-запрос выполняется правильно, и полученные данные Json возвращаются так же, как и те, которые возвращаются «если я соблюдаю порядок щелчков (Zones -> Regions)».

Позвольте мне сказать, что если, когда я вхожу на страницу в первый раз и a я делаю нормальный порядок кликов, все идет хорошо, но когда я меняю порядок кликов, как я уже говорил, все больше не будет работать .

Код, который мы используем для этого:

var RegionsStore = new Ext.data.JsonStore({
                              url:'/mypath/blabla',
                              fields:['Value','Text']
                   });
Ext.onReady(function() {
    Ext.getCmp('ext-Area').on('select', function(sender, item) {
        var target = Ext.getCmp('ext-Regions');
        target.setDisabled(true);
        target.setValue('');
        target.store.removeAll();
        target.displayField = 'Text';
        target.valueField = 'Value';
        target.store = RegionsStore;
        target.store.reload({
               params: { 
                  data: 'regions', 
                  discriminator: 'area', 
                  value: sender.getValue()
               }
        });
        target.setDisabled(false);
    });
});

Заранее спасибо за любые предложения!

Ответы [ 2 ]

1 голос
/ 17 мая 2009

Для тех, кто может найти этот вопрос, есть руководство по кодированию связанных комбо здесь:

http://extjs.com/learn/Tutorial:Linked_Combos_Tutorial_for_Ext_2

0 голосов
/ 01 мая 2009

Вызовите combo-2.store.clearFilter(); в первом обработчике выбора комбо, чтобы очистить второй внутренний фильтр комбо перед его обновлением.

...