ExtJs Cascading-Combos问题

时间:2009-04-30 10:53:36

标签: ajax extjs cascadingdropdown

我有一个问题(也许我的错误是使用错误的ExtJs,我希望我这样做)使用ExtJs在表单中进行级联组合。情况就是这样:

  1. 我有3个组合,区域,地区,城市
  2. 当我按顺序点击其中一个时,相关的一个将更新,使用Json作为数据格式发出ajax请求(所以即使我认为它没用,序列是正常序列Zones - > Regions - >城市)
  3. 即使它不是那么重要,我也在使用ASP.NET MVC Back-end
  4. 问题出现在我作为第一个操作时,首先点击一个后代,然后点击父级,例如,如果我只是在区域之前打开,然后打开区域并选择一个我希望它会填充区域很好..但没有任何反应。 在这种情况下,ajax-request也正确完成,并且返回的结果很好,因为返回“如果我尊重点击顺序(区域 - >区域)”。

    让我说,如果,当我第一次进入页面并且我执行正常的点击顺序时,一切顺利,但是当我更改点击顺序时,正如我之前所说的那样,事情将永远不会有效

    我们用来做的代码是:

    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 个答案:

答案 0 :(得分:1)

对于可能会发现此问题的其他人,有一个关于如何在此处编码链接组合的教程:

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

答案 1 :(得分:0)

在第一个组合选择处理程序中调用combo-2.store.clearFilter();以清除第二个组合内部过滤器,然后再更新它。