콤보 상자 편집기가있는 그리드가 있습니다. 행의 레코드 값에 따라 콤보 박스 저장소를 필터링하고 싶습니다. 이 작동하지만, 문제가격자 편집기에서 콤보 상자를 Extjs 필터링
editor: {
xtype: 'combo',
forceSelection: true,
store: 'ship.Transportmodes',
displayField: 'name',
valueField: 'id',
queryMode: 'local',
listeners: {
expand: function(combo){
var shipper = combo.up('grid').editingPlugin.activeRecord.get('shipper');
combo.store.filterBy(function(record){
console.log(record.get('shippers').indexOf(shipper))
return record.get('shippers').indexOf(shipper) != -1
})
}
},
editable: false
}},
:
는 내가 지금 가지고하는 것은 이것이다 드롭 다운 필드의 상단에 표시 될 때, 나머지 옵션은 현장에서 멀리 표시의 제거 된 옵션을위한 공간은 여전히 할당됩니다.
afterrender각 경우 결과는 다음과 같습니다. 저장소가 올바르게 필터링되지만 콤보 상자가 확장 된 시간에 필터가 지워집니다.
나는 어떤 일이 일어나는지 알고 싶습니다. 콤보 상자가 옵션 목록을 표시하기 전에 항상 저장소의 필터를 지우는 이유는 무엇입니까?
아무도 현장 뒤에서 통찰력을 줄 수 있습니까? 또는 그림에서 내가 무엇을 놓치고 있는지 말해 주시겠습니까?
당신은 시도 할 수 있습니다 ['clearFilterOnBlur : FALSE '(http://docs.sencha.com/extjs/4.2 .2/#!/api/Ext.form.field.ComboBox-cfg-clearFilterOnBlur) 필터가 지워지지 않도록합니다. – Alexander
@alexander 고마워, 나는 그것을 시도 할 것이다. 나는이 설정을 보았지만 콤보를 흐릿하게하는 동안에 만 동작을 변경한다고 생각했습니다. –
@alexander 아니, 불행히도 이것은 도움이되지 않습니다. clearFilterOnBlur는 타이핑에 사용되는 필터에만 적용됩니다. –