Afs*_*ani 19 combobox extjs extjs4
我有一个ExtJs的问题combobox
,考虑我有一个combobox
有4个项目和select
事件中的回调函数combobox
.
当我要设置combobox
所选值时setValue()
,ExtJs不会触发select
事件.
我该如何解决这个问题?
我应该自己解雇这个事件setValue()
吗?
sra*_*sra 19
我可以告诉你一年前sencha支持的内容:
好吧,根据定义,事件是由用户操作触发的函数调用,并且当您调用select时没有用户操作.
无论如何,"修复"很容易:你知道你在调用select之后调用select,你可以调用select listener函数.
这取决于你的情况你应该做什么.对我来说,我挂了我的实现,以便我能够调用负责任的方法,但另一方面,当你自己解雇事件时,我没有看到任何缺点.所以我觉得你更喜欢哪种方法取决于你.
这是一个如何自己解雇事件的例子(部分来自@JohanHaest的评论)
为简单起见,我说你只启用了单一选择
var record = combo.store.getById(id);
combo.select(id);
combo.fireEvent('select', combo, record);
Run Code Online (Sandbox Code Playgroud)
要么
combo.select(model);
combo.fireEvent('select', combo, model);
Run Code Online (Sandbox Code Playgroud)
有一个可能的哈克在当前版本(4.1.3)设置在一个第二个参数时select
的方法true
.根据源代码,这将触发select事件.但First参数必须是Model实例.
// source-snipped
select: function(r, /* private */ assert)
Run Code Online (Sandbox Code Playgroud)
所以打电话
combo.select(model, true);
Run Code Online (Sandbox Code Playgroud)
将触发select事件,但此行为可能随时(版本)更改,因为断言标记为私有