2013-04-15 34 views
0

使用控制器中的引用在extjs4.1中不觸發更改事件。我已經實現了下面的代碼。我使用了組合框ID cmbMarketRegion。使用控制器中的引用在extjs4.1中不觸發更改事件

有人能糾正我嗎?如果有什麼不對,請告訴我。

這是我的看法組合框

{ 
    xtype:'combo', 
    id:'cmbMarketRegion', 
    minWidth:50, 
    minHeight:30, 
    displayField:'marketRegionName', 
    valueField:'marketRegionId'             
} 

在控制器

{ 
     ref: '#cmbMarketRegion', 
} 

    ], 

    init: function() { 
    this.control({ 
     'cmbMarketRegion': { 
      change: 'valueChange' 
     } 
    }); 

    }, 


valueChange:function(combo, ewVal, oldVal,optionsVal) { 
    alert("hai"); 
} 

感謝

回答

1

您正在搜索的xtype 'cmbMarketRegion',而不是ID。 嘗試是這樣的:

this.control({ 
    'combo[id="cmbMarketRegion"]': { 
     change: this.valueChange, 
     scope: this 
    } 
}); 

,或者因爲ID是唯一的:

this.control({ 
    '[id="cmbMarketRegion"]': { 
     change: this.valueChange, 
     scope: this 
    } 
}); 

儘量不要使用id屬性,它是全球性的。

+0

您可以使用更簡單的選擇器:'#cmbMarketRegion'。這也將匹配具有設置爲該值的'itemId'屬性的組件;這裏的優點是'itemId'不必是全局唯一的。 –

相關問題