나는 이틀 동안 몇 줄의 코드를 사용하여 봤는데 어떤 이유로 그 코드를 실행할 수 없습니다.초점을 맞추지 못해서 콤보 상자가 확장되어
내가 원하는 것은 :
사용자는 첫 번째 콤보 필터링 사람의 목록에서 사람을 선택해야합니다 이후 콤보 상자에서 관계를 선택합니다. 한 명만있는 경우 철저히 선택해야합니다. 그것이 하나 이상 있다면, 나는 콤보 박스를 확장하고 당연히 검색된 사람들의 목록을 보여주고 싶다. 꽤 간단하게 들립니다.
onRelationContactSelect()는 사람을 선택할 때 일반적으로 실행되는 코드입니다. select 이벤트는 수동으로 값을 설정할 때 트리거되지 않기 때문에 간단히 호출합니다. 데이터가 서버에서 검색되도록로드 이벤트의 콜백에 코드가 있습니다. 그것은 처음부터 확장하거나 레코드를 선택하는 데 필요합니다.
문제 : 나는 하나 개의 레코드 (records.length == 1)가 때
모든 매력처럼 작동합니다. 두 개 이상의 레코드가 있으면 combobox contactCombo가 확장되지 않습니다. ExtJs 내부 코드를 통해 꽤 많은 디버깅을했는데 그 이유는 포커스가 없다는 것입니다. contactCombo.focus()를 호출하여 무엇을 시도하든간에 이 아닌 포커스가 있습니다. 따라서 확장되지 않습니다.
function onRelationContactSelect() {
categorieStore.load({ callback: function(r, options, success) {
//debugger;
//categorieCombo.focus();
//categorieCombo.expand();
}});
categorieCombo.focus();
categorieCombo.expand();
}
에서 볼 수있는 바와 같이 내가 전화 초점() 및 외부) (콜백하지만 모드의을 를 확장은 더 성가신 나는 다음과 같은 코드를 사용하여 또 다른 콤보를 확장 할 수 있도록하려면 categorieStore가 '로컬'입니다. 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);
}
내가 나이를 위해 노력했지만, 내가 단순히 콜백 핸들러 내에서 콤보를 초점을 맞출 수 없습니다 콜백 핸들러의 외부 나는 아직 데이터가없는 것 같다.
아무도 도와주세요.