多选搜索整个字符串
Multiselect search whole string
我有一个多选,搜索绑定到商店(属性 string_value)。搜索仅搜索以 "string to search" 开头而不包含 "string to search" 的字符串(类似于搜索 '%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。我试着让它与多选搜索一起工作,但没有成功。
MultiSelector 使用 Ext.util.Filter 根据键入的文本缩小结果范围。您需要启用 anyMatch 属性 才能匹配任何地方。
为此,您必须在多选器的搜索对象中包含一个新的 "search" 函数,该函数的 anyMatch=true。
请参阅我的 fiddle、https://fiddle.sencha.com/#fiddle/jf5,了解如何执行此操作的示例。
我有一个多选,搜索绑定到商店(属性 string_value)。搜索仅搜索以 "string to search" 开头而不包含 "string to search" 的字符串(类似于搜索 '%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。我试着让它与多选搜索一起工作,但没有成功。
MultiSelector 使用 Ext.util.Filter 根据键入的文本缩小结果范围。您需要启用 anyMatch 属性 才能匹配任何地方。
为此,您必须在多选器的搜索对象中包含一个新的 "search" 函数,该函数的 anyMatch=true。
请参阅我的 fiddle、https://fiddle.sencha.com/#fiddle/jf5,了解如何执行此操作的示例。