【问题标题】:ExtJs Cascading-Combos IssueExtJs 级联组合问题
【发布时间】:2009-04-30 10:53:36
【问题描述】:

我有一个问题(可能是我错误地使用了 ExtJs,我希望这样做)使用 ExtJs 在表单中执行级联组合。情况是这样的:

  1. 我有 3 个组合,区域、地区、城市
  2. 当我按顺序点击其中一个时,相关的将被更新,使用 Json 作为数据格式发出 ajax 请求(所以即使我认为它没有用,序列也是正常序列 Zones -> Regions ->城市)
  3. 即使它不是那么重要,我也在使用 ASP.NET MVC 后端

当我作为我做的第一个操作时出现问题,首先单击后代,然后单击父项,例如,如果我只是在区域之前打开,然后打开区域并选择一个我希望它会填充地区很好..但什么也没发生。 在这种情况下,ajax 请求也正确完成,并且返回的结果 Json 数据与“如果我尊重点击顺序(区域 - > 区域)”返回的结果相同。

让我说,当我第一次进入页面时,我做了一个正常的点击顺序,一切都很顺利,但是当我改变点击顺序时,就像我之前所说的那样,事情就不会再工作了.

我们使用的代码是:

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

提前感谢您的任何建议!

【问题讨论】:

    标签: ajax extjs cascadingdropdown


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 你把它放在后面了吗? target.store.reload({ params: { data: 'regions', discriminator: 'area', value: sender.getValue() } target.store.clearFilter();
      • 您可能还需要将目标组合的值设置为''(空字符串)。
      猜你喜欢
      • 2012-10-23
      • 1970-01-01
      • 2011-11-25
      • 1970-01-01
      • 2011-11-13
      • 2011-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多