强制商店仅加载那些未在 Multiselect 组合中选择的值 selection-EXTJS
Force the store to load only those values which are not selected inside Multiselect combo selection-EXTJS
我正在使用 EXTJs 3.4,我在加载多组合值时遇到问题,在编辑页面上,我想检查在多选中选择了哪些值,而不是在下拉选项中加载这些值。
如下所示,"SouthIndia" 选项在创建项目时是 preloaded/saved,因此现在我希望它不会出现在 dd 中,因为它已经被选中。
有什么方法可以让我知道要填充哪些值的存储?
multiselect = new Qx.form.MultiSelectComboBox({
allowCommaInQuery: true,
anchor: '0',
name: "multiselect",
displayField: 'value',
valueField: 'value',
hideRefreshLabel: true,
refreshable: false,
mode: 'local',
emptyText: $L('Select'),
enableCopyPaste: false,
anyMatch: true,
caseSensitive: false,
width: 170,
cacheSizes: false,
hidden: true,
disabled: true,
allowBlank: false,
store: multiComboVpc = new Ext.data.ArrayStore({
fields: ['value'],
data: values,
expandData: true
})
}),
Ext.extend($cls, Panel, {
afterRender: function() {
this.multiComboVpc.setValue("SouthIndia") //values coming from server
}
});
var values = ["SouthIndia"]
现在在这种情况下,我的下拉菜单应该是空的,我该如何实现?
步骤
从组合中获取选定的值
循环选择的值并使用store.find作为
var idx = store.find(fieldName, value, [startIndex], [anyMatch], [caseSensitive]);
其中 idx 是商店中第一个匹配记录的索引
使用上述索引获取记录
var removeRecord = store.getAt(idx);
现在从存储中删除匹配的记录
store.remove(removeRecord);
我正在使用 EXTJs 3.4,我在加载多组合值时遇到问题,在编辑页面上,我想检查在多选中选择了哪些值,而不是在下拉选项中加载这些值。
如下所示,"SouthIndia" 选项在创建项目时是 preloaded/saved,因此现在我希望它不会出现在 dd 中,因为它已经被选中。
有什么方法可以让我知道要填充哪些值的存储?
multiselect = new Qx.form.MultiSelectComboBox({
allowCommaInQuery: true,
anchor: '0',
name: "multiselect",
displayField: 'value',
valueField: 'value',
hideRefreshLabel: true,
refreshable: false,
mode: 'local',
emptyText: $L('Select'),
enableCopyPaste: false,
anyMatch: true,
caseSensitive: false,
width: 170,
cacheSizes: false,
hidden: true,
disabled: true,
allowBlank: false,
store: multiComboVpc = new Ext.data.ArrayStore({
fields: ['value'],
data: values,
expandData: true
})
}),
Ext.extend($cls, Panel, {
afterRender: function() {
this.multiComboVpc.setValue("SouthIndia") //values coming from server
}
});
var values = ["SouthIndia"]
现在在这种情况下,我的下拉菜单应该是空的,我该如何实现?
步骤
从组合中获取选定的值
循环选择的值并使用store.find作为
var idx = store.find(fieldName, value, [startIndex], [anyMatch], [caseSensitive]);
其中 idx 是商店中第一个匹配记录的索引
使用上述索引获取记录
var removeRecord = store.getAt(idx);
现在从存储中删除匹配的记录
store.remove(removeRecord);