Extjs 组合框无法聚焦,因此无法展开
两天来,我一直在摆弄几行代码,由于某种原因,我无法让它运行 我想要的是: 用户从组合框中选择关系,然后必须从第一个组合框过滤的人员列表中选择人员。如果只有一个人,则必须直接选择。如果它有多个,我希望组合框展开,当然显示检索到的人员列表。听起来很简单 onRelationContactSelect()是通常在选择人员时执行的代码。由于手动设置值时不会触发select事件,因此我只是手动调用它。我在load事件的回调中有代码,以确保从服务器检索数据。首先展开或选择记录所需的 问题是: 当我有一张唱片(records.length==1)时,一切都像一个魔咒。当我有超过1条记录时,combobox contactCombo无法展开。我通过ExtJs内部代码进行了大量调试,原因是它没有焦点。无论我如何调用contactCombo.focus(),它都不会聚焦。因此它不会扩展。为了让它更烦人,我可以用以下代码展开另一个组合框:Extjs 组合框无法聚焦,因此无法展开,extjs,combobox,callback,focus,jsonstore,Extjs,Combobox,Callback,Focus,Jsonstore,两天来,我一直在摆弄几行代码,由于某种原因,我无法让它运行 我想要的是: 用户从组合框中选择关系,然后必须从第一个组合框过滤的人员列表中选择人员。如果只有一个人,则必须直接选择。如果它有多个,我希望组合框展开,当然显示检索到的人员列表。听起来很简单 onRelationContactSelect()是通常在选择人员时执行的代码。由于手动设置值时不会触发select事件,因此我只是手动调用它。我在load事件的回调中有代码,以确保从服务器检索数据。首先展开或选择记录所需的 问题是: 当我有一张唱片
function onRelationContactSelect() {
categorieStore.load({ callback: function(r, options, success) {
//debugger;
//categorieCombo.focus();
//categorieCombo.expand();
}});
categorieCombo.focus();
categorieCombo.expand();
}
可以看出,我在回调之外调用了focus()和expand(),但categorieStore的模式是“local”。categorieStore中的数据是静态的,但仍从服务器检索
守则:
function onRelatieSelect() {
contactStore.baseParams = {"relatieId": relatieCombo.value };
contactStore.load({callback: function(records, options, success) {
if(records.length == 1) {
contactCombo.setValue(records[0].get('Id'));
onRelationContactSelect();
} else {
contactCombo.clearValue();
contactCombo.focus();
contactCombo.expand();
}
}});
openTicketRelationLabel.show();
gridTicketRelatie.show();
ticketRelatieStore.load({ params: {relatieId:relatieCombo.value}});
SetRelatieInfo();
SetContractsInfo();
setSfHoursOsab();
showRelationNotifications(relatieCombo.value);
}
我已经尝试了很久,但似乎我无法从回调处理程序内部和回调处理程序外部聚焦组合框,我还没有数据
有人能帮我吗?在对两个不同的组合框进行沙箱处理后,我找到了解决方案 解决方案很奇怪,但很简单:
categorieCombo.on('select', function() {
subcategorieCombo.focus();
subcategorieStore.load({ callback: function(r, options, success) {
subcategorieCombo.focus();
subcategorieCombo.expand();
} });
在加载之前集中注意力
在加载的回调中再次聚焦
除了需要关注两次之外,对这个解决方案唯一不满意的是,我根本不知道为什么这样做有效,但它为我解决了问题