Sencha EXTJS MODERN 6.5.3 - Ext.list.Tree, флажок не работает
Мы используем древовидный список в sencha modern extjs версии 6.5.3, в нем у нас есть древовидный список с флажком на каждом узле. У нас возникла проблема с установкой снятия флажка для узлов дерева при нажатии на сам флажок, тогда как он работает нормально, когда мы нажимаем на ярлык флажка.
он пропускает правильное проверенное значение, когда отмечен / не отмечен, но дисплей остается, например, когда флажок снят, не отмечен - он показывает "проверено" и наоборот. мы также попытались установить атрибут dom проверяемого элемента, хотя он не отражает элемент флажка.
PS: Есть ли какой-либо компонент, доступный в современной такой же классической панели дерева с флажком в качестве узла.
Этот флажок применяется из класса переопределения для списка дерева.. как показано ниже:
Ext.define('MapViewer.view.main.Kaartopbow.BPPTXMLOverride', {
extend: 'Ext.list.TreeItem',
alias: 'widget.bpptlistitemview',
element: {
reference: 'element',
tag: 'li',
cls: Ext.baseCSSPrefix + 'treelist-item',
children: [{
reference: 'rowElement',
cls: Ext.baseCSSPrefix + 'treelist-row',
children: [{
reference: 'wrapElement',
cls: Ext.baseCSSPrefix + 'treelist-item-wrap',
children: [{
reference: 'iconElement',
cls: Ext.baseCSSPrefix + 'treelist-item-icon'
}, {
reference: 'checkElement',
cls: Ext.baseCSSPrefix + 'treelist-item-check',
tag: 'input',
type: 'checkbox'
}, {
reference: 'textElement',
cls: Ext.baseCSSPrefix + 'treelist-item-text'
}, {
reference: 'expanderElement',
cls: Ext.baseCSSPrefix + 'treelist-item-expander'
}]
}]
}, {
reference: 'itemContainer',
tag: 'ul',
cls: Ext.baseCSSPrefix + 'treelist-container'
}, {
reference: 'toolElement',
cls: Ext.baseCSSPrefix + 'treelist-item-tool'
}]
},
updateChecked: function (checkedvalue, oldCheckValue) {
var domele = Ext.getDom(this.checkElement);
if (checkedvalue) {
domele.checked = true;
} else {
domele.checked = false;
}
},
config: {
checked: undefined
},
privates: {
doNodeUpdate: function (node) {
var me = this,
textProperty = this.getTextProperty(),
iconClsProperty = this.getIconClsProperty();
if (textProperty) {
me.setText(node.data[textProperty]);
}
if (iconClsProperty) {
me.setIconCls(node.data[iconClsProperty]);
}
if (node.data['parentId'] != "root") {
me.setChecked(node.data['checked']);
} else {
this.hideCheckedField(node);
}
var ref = this.wrapElement;
if (node.data['HighlightRecord']) {
ref.addCls('treeItemHighlightCls');
} else {
ref.removeCls('treeItemHighlightCls');
}
me.updateExpandCls();
me.setLoading(node.isLoading());
me.setLeaf(node.isLeaf());
me.doUpdateExpandable();
this.setRowCls(node && node.data[this.rowClsProperty])
},
hideCheckedField: function (node) {
Ext.getDom(this.checkElement).style.display = 'none';
}
}
});
=============================================
This is the code for the tree list:
Ext.define('MapViewer.view.main.Kaartopbow.BPPTXML', {
extend: 'Ext.list.Tree',
requires: [
'Ext.list.Tree',
'Ext.list.TreeItem',
'MapViewer.view.main.Kaartopbow.BPPTXMLController',
'MapViewer.view.main.Kaartopbow.BPPTXMLOverride'
],
alias: 'widget.bpptxml',
userCls: 'kaartopbowPTXmlCls',
defaults: {
xtype: 'bpptlistitemview',
dataIndex: 'text'
},
rootVisible: false,
scrollable: true,
disableSelection: true,
//itemTpl: '{text}',
//store: 'xmltreestore',
controller: 'bpptxmlcontroller',
listeners: {
itemclick: 'onBPPTXMLTreeItemClick'
}
});