2009-04-30 2 views
1

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

  1. У меня есть 3 комбо, зон, областей, городов
  2. При нажатии на одну из них в порядке, соответствующий один будет обновлен сделать запрос Ajax с помощью JSON в качестве формата данных (так что даже если я думаю, что это не полезно, последовательность является нормальной последовательности зон -> Регионы -> Города)
  3. даже если это не так важно, я на ASP.NET MVC Back-конец

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

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

код мы используем, чтобы сделать это:

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

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

ответ

0

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

+0

Ваше решение до сих пор не работает ... – Hoghweed

+0

ли вы положили его после этого? target.store.reload ({ Титулы: { данных: 'регионы' Дискриминатор: 'область', значение: sender.getValue() } target.store.clearFilter(); – Thevs

+0

И вы, вероятно, необходимо установить значение целевого комбо в '' (пустая строка). – Thevs