我有一个带有搜索绑定到商店的多选(带有属性string_value)。搜索仅搜索以“要搜索的字符串”开头的字符串,而不是搜索“要搜索的字符串”(类似于搜索'%string%'而不是'string%')。有没有办法通过扩展'multiselector-search'来做到这一点?
下面是绑定到表单的多选择器控件:
var ms = Ext.widget('form', {
xtype: 'multi-selector',
width: 400,
height: 300,
requires: [
'Ext.view.MultiSelector'
],
layout: 'fit',
renderTo: Ext.getBody(),
items: [{
bbar: [{
xtype: 'button',
itemId: 'button',
html: 'Toolbar here',
text: 'Submit request to API',
// get submitted array
handler: function() {
if (cardioCatalogQT.config.mode === 'test') {
console.log('In submitted values handler: ');
}
var submitted = Ext.getCmp('test');
var dx = [];
Ext.Array.each(submitted.store.data.items, function (item) {
dx.push(item.data.string_value);
}); // each()
Ext.Msg.alert('Submitted Values',
'The following diagnoses will be sent to the server: <br
/>' + dx);
if (cardioCatalogQT.config.mode === 'test') {
console.log(dx);
}
}
}],
xtype: 'multiselector',
title: 'Selected Dx',
id: 'test',
name:'test',
fieldName: 'string_value',
viewConfig: {
deferEmptyText: false,
emptyText: 'No Dx selected'
},
// TODO: fix ability to remove selected items when box is unchecked
search: {
field: 'string_value',
store: 'Diagnoses'
}
}]
}).center();
我能找到的最接近这个问题的是http://www.sencha.com/forum/showthread.php?240887。我尝试使用多选搜索没有成功。
答案 0 :(得分:3)
MultiSelector使用Ext.util.Filter根据键入的文本缩小结果范围。您需要启用anyMatch属性才能在任何地方进行匹配。
为此,您必须在multiselector的搜索对象中包含一个新的“搜索”功能,该功能将具有anyMatch = true。
请参阅我的小提琴,https://fiddle.sencha.com/#fiddle/jf5,了解如何执行此操作的示例。