0 0

EXT 中级联的小问题5

{
		           xtype:"combo",
		           mode:'local',
		           valueField:'xiaoqu',
		           displayField:'xiao',
		           width: 100,
		           triggerAction:'all',
		           emptyText: '请选择',
		           store:this.store1,
		           listeners:
		            {
					    'select' : function(cb)
					    {
						    var selectedId = cb.getValue();
						    this.store2.loadData(data2[selectedId-1]);
					    }
				    }
		        },
{
		           xtype:"combo",
		           mode:'local',
		           valueField:'value',
		           displayField:'text',
		           width: 100,
		           emptyText: '请选择',
		           triggerAction:'all',
		           store:this.store2
		        },
getStore1: function() {
            var store1 = new Ext.data.SimpleStore({
		    data:this.data1,
		    fields:['xiaoqu','xiao']
            });
            return store1;
        },
        getStore2: function() {
            var store2 = new Ext.data.SimpleStore({
		    data:this.data2,
		    fields:['value','text']
            });
            return store2;
        },
getData1:function(){
        var data1=
            [
                ['1','育新小区'],
                ['2','东村家园'],
                ['3','富力桃园']
            ]; 
        return data1;
        },
        getData2:function(){
        var data2= new Array();     
             data2[0] = 
                 [
                     ['11','表1'],
                     ['12','表2']
                 ];     
             data2[1] = 
                 [
                     ['21','表3'],
                     ['22','表4']
                 ];
             data2[2] = 
                 [
                     ['31','表5'],
                     ['32','表6']
                 ]; 
        return data2;
        },
怎么第二个下拉列表没反映啊?

 

2012年8月29日 11:44

5个答案 按时间排序 按投票排序

0 0

采纳的答案

引用
listeners:  
                    {  
                        'select' : function(cb)  
                        {  
                            var selectedId = cb.getValue();  
                            this.store2.loadData(data2[selectedId-1]);  
                        }  
                    }

改成:
listeners:   
                    {   
                        'select' : function(cb)   
                        {   
                            var selectedId = cb.getValue();   
                            this.store2.loadData(data2[selectedId-1]);   
                        },
                        scope:this    
                    } 
试试看看

2012年8月29日 13:11
0 0

引用
listeners: 
                    { 
                        'select' : function(cb) 
                        { 
                            var selectedId = cb.getValue(); 
                            this.store2.loadData(data2[selectedId-1]); 
                        } 
                    } 

这段代码改成
var combo2=Ex.getCmp('第二个combo的ID');
combo2.getStore().loadData(data2[selectedId-1]);

否则第二个下拉列表框不会自动刷新到新的store值

2012年8月29日 16:51
0 0

'select' : function(cb) 
     { 
          var selectedId = cb.getValue(); 
          this.store2.loadData(data2[selectedId-1]); 
     } 


应该是这个地方的问题,你这个this指的范围是comboBox

2012年8月29日 11:52
0 0

或者传值有错误,导致后台有请求,但返回数据是null。建议alert一下

2012年8月29日 11:46
0 0

没有传值给第二个下拉列表,

2012年8月29日 11:45

相关推荐

Global site tag (gtag.js) - Google Analytics