extjs - extjs如何确定用户是否触发了组合框更改事件
问题描述
我正在尝试 Extjs,我正在尝试这种情况:我有一个组合框,默认情况下将显示层次结构中的第一级。也就是说:
0001
0001.0002
0001.0002.0004
0001.0003
0005
第一级是0001
and 0005
。如果我选择0001
它进入 restapi 并获取0001.0002
和0001.0003
. 该行为按预期工作。我的问题是:我必须在同一个组合框中显示获取的数据,并保持选中我首先选择的项目。我的组合正在做的是加载数据,但取消选择所有内容。这是我到目前为止所做的:
var store = Ext.create('mycomponents.store.mystore', {});
var selectedText = '';
var autoSelec = false;
Ext.define('mycomponents.view.myview', {
extend: 'Ext.container.Container',
id: 'myview',
alias: 'widget.newComponent',
xtype: 'myview',
items: [
{
xtype: 'combobox',
reference: 'levels',
publishes: 'value',
fieldLabel: 'Options',
displayField: 'val',
valueField: 'val',
queryMode: 'local',
lastQuery: '',
emptyText: 'Please select...',
anyMatch: true,
anchor: '-15',
store: store,
minChars: 0,
typeAhead: true,
triggerAction: 'all',
selectOnFocus:true,
typeAheadDelay: 100,
labelWidth: 100,
labelAlign: 'right',
width: 265,
pageSize: 0,
clearFilterOnBlur: true,
defaultValue: 0,
matchFieldWidth: false,
allowBlank: false,
forceSelection: true,
enableKeyEvents: true,
onTrigger2Click: function (args) {
this.select(this.getStore().getAt(0));
},
listeners: {
select: function (combo, record, eOpts) {
console.log('Select', combo, record, eOpts);
},
change: function (item, newValue, oldValue) {
if (!autoSelec && newValue !== oldValue && !store.isLoading() && item.selection) {
if (newValue) {
selectedText = newValue;
}
store.proxy.extraParams = {
sort: 'clave',
'filter[activo]': true,
'filter[idpadre]': item.selection.data.idelemento
};
store.load({
callback: function () {
var items = store.data.items;
if (items.length) {
console.log('MY STORE >>>', items);
}
autoSelec = true;
}
});
}
}
}
}
],
initComponent: function () {
this.callParent(arguments);
var that = this;
}
});
如何在商店加载后将先前选择的项目设置为 selectt 项目,因此不允许重新加载商店?
解决方案
经过一整天的搜索和阅读,我找到了解决方案。也许这听起来很幼稚,但我是从 Extjs 开始的。
这是解决方案:
var items = store.data.items;
store.insert(0, mypreviousElement);
item.setValue(items[0]);
item.focus();
从这里开始,项目是我的组合......这是之后的回调store.load
,希望这可能会有所帮助。
推荐阅读
- android - 如何在 android studio 4.2+ 中启用颤振 UI 指南
- netsuite - Netsuite RESTlet
- python - 基于方差去除特征
- mysql - 如何使用 grupBy 和间隔在 MySql 中累积和?
- .net - 在.net平台中使用jar文件
- python - 使用 Python 下载 mp3 文件时遇到问题
- java - Android 应用程序在 AVD (Android Studio) 上意外关闭。(附上Logcat)
- android - 如何修复 Windows 10 中的 Android AVD 问题
- android - 从 Kotlin 原生插件启动 Flutter 到特定屏幕
- r - 如何创建显示低/高价格的 ggmap 热图?