多选搜索整个字符串

时间:2015-03-10 21:02:39

标签: search extjs multi-select

我有一个带有搜索绑定到商店的多选(带有属性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。我尝试使用多选搜索没有成功。

1 个答案:

答案 0 :(得分:3)

MultiSelector使用Ext.util.Filter根据键入的文本缩小结果范围。您需要启用anyMatch属性才能在任何地方进行匹配。

为此,您必须在multiselector的搜索对象中包含一个新的“搜索”功能,该功能将具有anyMatch = true。

请参阅我的小提琴,https://fiddle.sencha.com/#fiddle/jf5,了解如何执行此操作的示例。