【问题标题】:Multiselect search whole string多选搜索整个字符串
【发布时间】:2015-05-12 11:59:41
【问题描述】:

我有一个多选,搜索绑定到商店(带有属性 string_value)。 Search 只搜索以“string to search”开头的字符串,而不是包含“string to search”的字符串(类似于搜索“%string%”而不是“string%”)。有没有办法通过扩展“多选搜索”来做到这一点?

下面是我绑定到表单的多选控件:

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。我尝试让它与多选搜索一起使用,但没有成功。

【问题讨论】:

  • 也许您可以在 fiddle.sencha.com 上添加您正在做的事情的示例,我们可以更轻松地尝试帮助您。
  • 完成:fiddle.sencha.com/#fiddle/jav 用例是我想搜索字符串中某个数字的所有实例,比如“0”。无需输入完整值 ('string_0'),只需输入 '0' 即可从列表中获取所有所需的实例(假设列表中还有 'string_10')。

标签: search extjs multi-select


【解决方案1】:

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

为此,您必须在多选器的搜索对象中包含一个新的“搜索”函数,该函数将具有 anyMatch=true。

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

【讨论】:

  • 不错!像魅力一样工作!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-10-15
  • 2014-06-23
  • 2012-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多