Ext.plugin.ListPaging - 常见的“加载更多......”问题

时间:2013-06-12 08:01:26

标签: extjs sencha-touch sencha-touch-2

我正在处理以下问题,我收到了以下代码:

查看:

Ext.define('aBMin.view.Email', {
extend : 'Ext.Panel',
alias : 'widget.email-panel',
config : {
    layout : "fit",
    items : [{
        xtype : 'toolbar',
        ui : 'light',
        layout : 'hbox',            
        docked : 'top',
        items : [{
            xtype : 'searchfield',
            name : 'emailsearch',
            width: '45%',
            flex : 1
        }, {
            xtype : 'selectfield',
            flex : 2,   
            name : 'emailassign',
            value : 'unassigned',
            options : [{
                text : 'All',
                value : 'all'
            }, {
                text : 'Assigned',
                value : 'assigned'
            }, {
                text : 'Unassigned',
                value : 'unassigned'
            }]
        }]
    }, {
        xtype : 'list',
        action : 'readEmail',
        itemTpl : '<tpl for="."><div class="list-pos-row"><div class="list-pos-col">{emailsubject}</div></div><div class="list-pos-row"><div class="list-pos-col list-email-date">{emaildate}</div></div><div class="list-pos-row"><div class="list-pos-col list-email-from">{emailfrom}</div></div></tpl>',
        itemSelector : 'div.contact',
        emptyText : 'No data found.',
        onItemDisclosure : true,
        store : 'Email',
        plugins : [{
            xclass : 'Ext.plugin.ListPaging',
            autoPaging : true,
            noMoreRecordsText: 'No More Records'
        }],
    }]
}
});

商品

Ext.define('aBMin.store.Email', {
extend : 'Ext.data.Store',
requires : ['aBMin.model.Email'],
config : {
    autoLoad : true,
    model : 'aBMin.model.Email',
    remoteFilter : true,
    proxy : {
        type : 'direct',
        extraParams : {
            filter : 'unassigned'
        },
        directFn : ClientemailTable.getListMobile,
        config : {
            paramsAsHash : true,
            reader : {
                type : 'json',
                rootProperty : 'records'
                ,totalCount: 'totalCount'   
            }
        }
    }
}
});

MODEL

Ext.define('aBMin.model.Email', {
extend : 'Ext.data.Model',
config : {
    fields : [{
        name : 'clientemailid',
        type : 'int'
    }, {
        name : 'clientid',
        type : 'int'
    },{
        name : 'emailsubject',
        type : 'string'
    }, {
        name : 'emailfrom',
        type : 'string'
    }, {
        name : 'emailbody',
        type : 'string'
    }, {
        name : 'supportstaffid',
        type : 'int'
    }, {
        name : 'ticketid',
        type : 'int'
    }, {
        name : 'emaildate',
        type : 'string'
    }, {
        name : 'isassigned',
        type : 'int'
    }, {
        name : 'newemailnote',
        type : 'string'
    }],
    idProperty : 'clientemailid',
    proxy : {
        type : 'direct',
        reader : {
            type : 'json'
        },
        api : {
            read : Clientemail.readMobile,
            update : Clientemail.updateMobile
        }
    }
}
});

现在......我的服务返回以下JSON响应:

enter image description here

当app发送给ex时它会被返回。请求下面有类似params:

enter image description here

仍然......'加载更多',不会消失。

enter image description here

所以我想我想要实现的是在商店满载时摆脱'加载更多...'按钮。我在StackOverflow上读过很少的其他主题,但没有解决问题
任何评论/意见表示赞赏。

1 个答案:

答案 0 :(得分:1)

键应该是阅读器配置中的totalProperty,而不是totalCount。

http://docs.sencha.com/touch/2.2.1/#!/api/Ext.data.reader.Reader