Ext.form.ComboBox 中如何移除事件,如何添加事件

背景:
  希望Ext.form.ComboBox动态设置forceSelection属性,动态控制Combobox的可读可写状态,是否允许任意输入。
  但是ComboBox对象并没有setForceSelection()方法,不能通过对象直接设置forceSelection属性。
	
如:
    Ext.getCmp("shoukuanrenCombobox").setForceSelection(true);		// 方法报错,setForceSelection()方法不存在
		
目标:
  期望实现动态控制Ext.form.ComboBox的可读可写,是否允许任意输入。
	
解决:
  通过Ext源码,拿到on(),un()两个方法,通过on(),un()两个方法直接设置forceSelection属性对应的事件
		on():
			addListener: function (A, C, B, F) {
		un():
			removeListener: function (A, C, B) {
			
	代码如:
		// 实现forceSelection = true属性,即添加"blur"事件
		Ext.getCmp("shoukuanrenCombobox).on("blur", Ext.getCmp("shoukuanrenCombobox).doForce, Ext.getCmp(shoukuanrenCombobox));
		Ext.getCmp("kaihuhangCombobox).on("blur", Ext.getCmp("kaihuhangCombobox).doForce, Ext.getCmp(kaihuhangCombobox));
		// 实现forceSelection = false属性,即移除"blur"事件
		Ext.getCmp("shoukuanrenCombobox).un("blur", Ext.getCmp("shoukuanrenCombobox).doForce, Ext.getCmp(shoukuanrenCombobox));
		Ext.getCmp("kaihuhangCombobox).un("blur", Ext.getCmp("kaihuhangCombobox).doForce, Ext.getCmp(kaihuhangCombobox));
 posted on 2021-04-14 20:12  倾目  阅读(311)  评论(0编辑  收藏  举报