第一次出现组合框加载问题

时间:2012-12-18 18:29:24

标签: extjs

我讨厌奇怪的问题。

我有两个组合框,我想用其他的值级联其中一个。

因此,在一个组合框的选择事件中,我正在获得另一个组合框并且将该商店丢失。

但我观察到的是以下情况正在发生。

  1. 用户首次选择第一个组合框值,因此第二个组合框加载了商店。
  2. 当用户第一次选择第二个组合框时,AJAX调用不知道为什么?
  3. 如果用户选择了组合框,则再次加载,然后加载存储以进行第二组合
  4. 当用户再次选择第二个组合框时,不会进行AJAX调用(为什么第一次进行ajax调用)
  5. 我无法在步骤2中理解为什么对第二个组合进行ajax调用,因为它已在步骤1中加载。

    code here
     xtype: 'combo',id='firstcombo', name: 'DEFAULT_VALUE' ,minChars:2, value: decodeHtmlContent('') ,width:200 ,listWidth:500, resizable: true,
     valueField : 'id', displayField: 'id', pageSize: 15,forceSelection:true, enableKeyEvents: true,
     store: new Ext.data.Store({reader: new Ext.data.CFQueryReader({id: 'NAME', 
                fields:[{name:'id', mapping:'id'}]}), 
                fields: [{name:'id', mapping:'id'}], 
                url:'server/ajax/Params'
                }
    
     }),
     listeners : {
             select:function(combo, record, index) {
                this.setRawValue(decodeHtmlContent(record.get('id')));
                cascadeFields();
            }
    
    
    
     xtype: 'combo',id='secondcombo', name: 'DEFAULT_VALUE' ,minChars:2, value: decodeHtmlContent('') ,width:200 ,listWidth:500, resizable: true,
     valueField : 'id', displayField: 'id', pageSize: 15,forceSelection:true, enableKeyEvents: true,
     store: new Ext.data.Store({reader: new Ext.data.CFQueryReader({id: 'NAME', 
                fields:[{name:'id', mapping:'id'}]}), 
                fields: [{name:'id', mapping:'id'}], 
                url:'server/ajax/Params',
                baseParam:{valuefirst:''}
                },
                listeners: {
    
                    beforeload: function(store, options) {
                        var value = Ext.getCmp('fistcombo').value;
                        Ext.apply(options.params, {
    
                                    valuefirst:value
                                });
    
    
                    }, 
    
     }),
     listeners : {
             select:function(combo, record, index) {
                this.setRawValue(decodeHtmlContent(record.get('id')));
            }
    
    
    function cascadeFields()
    {
    
      var combo = Ext.getCmp('secondcombo');
    
      if(combo.store)
      {
    
      var store = combo.store;
    
    
      combo.setDisabled(true);
      combo.clearValue('');
      combo.store.removeAll();
      combo.store.load();        
      combo.setDisabled(false);
    
      }
    }
    

0 个答案:

没有答案