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

使用分页extjs在组合框中搜索,extjs,combobox,Extjs,Combobox,您好,我正在尝试在组合框中进行搜索。它正在工作,但只在当前页面中搜索我也在使用搜索分页,我需要在所有页面中搜索,而不仅仅是当前页面 有什么建议吗 您的商店需要设置为 服务器需要根据从存储代理接收的参数正确处理分页。代理将发送查询字符串参数,如?page=1&start=0&limit=25,服务器只需返回25条(例如)记录和一个total参数 {“总计”:101,“数据”:[{model data},{model data},…]} 尽管有文档,combobox中的pageSize属性实际上是

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

有什么建议吗


  • 您的商店需要设置为

  • 服务器需要根据从存储代理接收的参数正确处理分页。代理将发送查询字符串参数,如
    ?page=1&start=0&limit=25
    ,服务器只需返回25条(例如)记录和一个total参数

    {“总计”:101,“数据”:[{model data},{model data},…]}

  • 尽管有文档,combobox中的pageSize属性实际上是一个布尔值,如果大于或等于1,则将分页


  • 我将combobox与queryMode一起使用:“remote”,并使用combobox搜索匹配项。我正在执行“包含”搜索,这意味着它在结果字符串中的任何位置查找匹配项,而不仅仅是开始,而且它不仅在当前页面中搜索值,而且在整个结果集中搜索值。我使用的是ExtJS4.0.7,通过重写doQuery方法实现了这一点

    `doQuery:函数(queryString、forceAll){ 这个。展开(); this.store.clearFilter(!forceAll)


    如果您可以发布代码,诊断起来会容易得多。您使用的是远程存储还是本地存储?添加的代码我使用的是远程存储和查询模式。它是本地的
    this.store
    是如何定义的?在initComponent,例如initComponent:function(){this.store=Ext.create('App.store.CountriesStore');}不,我的意思是你能发布你商店的完整定义吗?
    {
        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
    })
    
        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'));
        }
    }`