使用分页extjs在组合框中搜索

时间:2013-06-26 10:59:44

标签: extjs combobox

您好我正在尝试在combobox中进行搜索。它正在工作,但只在当前页面中搜索我正在使用搜索分页,我需要在所有页面中搜索而不是当前页面

任何建议


{
    xtype: 'combo',
    fieldLabel: 'Organization Id',
    name: 'company_id',
    displayField:'name_en',
    valueField:'id',
    store: Ext.create('UserApp.store.PicklistList', {
        autoLoad: true,
        fields: ['id', 'name_en', 'name_se'],
        proxy:{
            type:'ajax',
            api: {
                read:'picklist/listitems'
            },
            reader: {
                type: 'json',
                root: 'root',
                successProperty: 'success'
            },
            extraParams:{
                table :'table_name'
            }
        }
    }),
    editable: true,
    autoSelect: false,
    selectOnFocus:true,
    typeAhead:true,
    minChars:2,
    queryMode: 'local',
    mode: 'local',
    pageSize: 25,
    width:370,
    allowOnlyWhitespace: false,
    regex: /[a-zA-Z0-9]+/, // avoid to empty data only
})

2 个答案:

答案 0 :(得分:0)

  1. 您的商店需要设置pagination

  2. 您的服务器需要根据从商店代理收到的参数正确处理分页。代理将发送查询字符串参数,如?page=1&start=0&limit=25,您的服务器只需返回25个(例如)记录和总参数。

    {"total":101,"data":[{model data}, {model data}, ...]}

  3. 尽管有文档,但是combobox中的pageSize属性实际上是一个布尔值,如果为1或更大则会分页。

答案 1 :(得分:0)

我正在使用带有queryMode的组合框:'remote'并使用combobox进行搜索以进行匹配。我正在进行“包含”搜索 - 这意味着它在结果字符串中的任何位置查找匹配项而不仅仅是开始,并且它不仅在当前页面中而且在整个结果集中搜索值。我正在使用extjs 4.0.7,我通过重写doQuery方法来实现它。

`doQuery:function(queryString,forceAll){         this.expand();         this.store.clearFilter(forceAll!);

    if(this.queryMode == 'remote') {
        this.store.load({
            params: this.getParams(queryString)
        });
    }
    if (!forceAll) {
        this.store.filter(this.displayField, new RegExp(Ext.String.escapeRegex(queryString), 'i'));
    }
}`