нумерация страниц теперь отображает итог в сетке extjs 4.1.

Я заметил, что в некоторых или моих сетках не отображается «displayMsg». т.е. текст в правом нижнем углу.

Если вы посмотрите на приведенный ниже снимок экрана, я установил pageSize: 4. Всего на самом деле "33" записей, поэтому должна начаться нумерация страниц. В общих чертах, каковы некоторые причины, по которым нумерация страниц не показывает общее количество записей.

введите здесь описание изображения

введите здесь описание изображения

Ext.define('Mis.view.PurchaseOrder', {
extend: 'Ext.grid.Panel',
alias:'widget.purchaseorder',
title:'Purchase Order',
store:'MaterialPurchaseOrders',
height: 235,
dockedItems:[
    {
        xtype: 'pagingtoolbar',
        store:'MaterialPurchaseOrders',
        dock: 'bottom',
        displayInfo: true,
        displayMsg:'Displaying records {0} - {1} of {2}  ',
        emptyMsg:"No records to display ",
        flex:1
    }
],
columns:[
    {
        xtype:'gridcolumn',
        dataIndex:'PartName',
        name:'PartName',
        text:'Part',
        flex:1
    },
    {
        xtype:'gridcolumn',
        text:'PO ID',
        dataIndex:'PoNumber',
        name:'PoNumber',
        width: 80,
        align: 'center'
    },
    {
        xtype:'gridcolumn',
        text:'Material',
        dataIndex:'Name',
        name:'Name',
        flex:1
    },
    {
        xtype:'gridcolumn',
        text:'Total',
        dataIndex:'Total',
        name:'Total',
        width: 80,
        align: 'center'
    },
    {
        xtype:'gridcolumn',
        text:'Size / Ref',
        dataIndex:'SizeReference',
        name:'SizeReference',
        width: 80,
        align: 'center'
    },
    {
        xtype:'gridcolumn',
        text:'Size L',
        dataIndex:'SizeLength',
        name:'SizeLength',
        width: 80,
        align: 'center'
    },
    {
        xtype:'gridcolumn',
        text:'Size W',
        dataIndex:'SizeWidth',
        name:'SizeWidth',
        width: 80,
        align: 'center'
    },
    {
        xtype:'gridcolumn',
        text:'Quantity',
        dataIndex:'Quantity',
        name:'Quantity',
        width: 80,
        align: 'center'
    },
    {
        xtype:'gridcolumn',
        text:'Meterage',
        dataIndex:'Meterage',
        name:'Meterage',
        width: 80,
        align: 'center'
    }
],


initComponent:function () {
    this.callParent();
}

});

моя модель.

    Ext.define('Mis.model.MaterialPurchaseOrder', {
    extend: 'Ext.data.Model',
    idProperty: 'Id',
    fields: [
                {
                    mapping: 'Id',
                    name: 'Id'
                },
                {
                    mapping: 'Name',
                    name: 'Name'
                },
                {
                    mapping: 'SizeReference',
                    name: 'SizeReference'
                },
                {
                    mapping: 'SizeLength',
                    name: 'SizeLength'
                },
                {
                    mapping: 'SizeWidth',
                    name: 'SizeWidth'
                },
                {
                    mapping: 'Quantity',
                    name: 'Quantity'
                },
                {
                    mapping: 'Meterage',
                    name: 'Meterage'
                },
                {
                    mapping: 'PoNumber',
                    name: 'PoNumber'
                },
                {
                    mapping: 'PartId',
                    name: 'PartId'
                },
                {
                    mapping: 'PartName',
                    name: 'PartName'
                },
                {
                    mapping: 'Total',
                    name: 'Total'
                },
                {
                    mapping: 'MaterialType',
                    name: 'MaterialType'
                },
                {
                    mapping: 'MaterialTypeId',
                    name: 'MaterialTypeId'
                }
    ],
    proxy: {
        type: 'ajax',
        url: '',
        api:
               {
                   read: '/Material/ReadAssignedPurchaseOrder/',
                   update: '/Material/Update',
                   create: '/Material/Update',
                   destroy: '/Material/Remove'
               },
        reader: {
            type: 'json',
            root: 'Materials',
            successProperty: 'Success',
            totalProperty: 'Total'
        },
            writer:{
            type:'json',
            allowSingle:true
        }
    }
});

хранить

Ext.define('Mis.store.MaterialPurchaseOrders', {
extend: 'Ext.data.Store',
requires: 'Mis.model.MaterialPurchaseOrder',
model: 'Mis.model.MaterialPurchaseOrder',
pageSize: 4

});


person frosty    schedule 09.08.2012    source источник
comment
Просто предположение, но попробуйте изменить свойство Total со String на Integer на стороне сервера.   -  person dbrin    schedule 09.08.2012
comment
только что попробовал это. Я использовал веревку. Обновлено до int. Нет радости. Оцените комментарий. Спасибо.   -  person frosty    schedule 10.08.2012
comment
Я вижу, что свойство успеха возвращает «ложь» — может ли это быть проблемой?   -  person dbrin    schedule 10.08.2012


Ответы (1)


Попробуйте создать экземпляр своего магазина, это никогда не помешает. В вашем примере (хранить по строке), если у вас открыты 2 сетки и вы их сортируете, они оба будут сортироваться одинаково и т.д.

Ext.define('Mis.view.PurchaseOrder', {
    extend: 'Ext.grid.Panel',
    alias: 'widget.purchaseorder',
    title: 'Purchase Order',
    height: 235,
    columns: [
        {
        xtype: 'gridcolumn',
        dataIndex: 'PartName',
        name: 'PartName',
        text: 'Part',
        flex: 1},
    {
        xtype: 'gridcolumn',
        text: 'PO ID',
        dataIndex: 'PoNumber',
        name: 'PoNumber',
        width: 80,
        align: 'center'},
    {
        xtype: 'gridcolumn',
        text: 'Material',
        dataIndex: 'Name',
        name: 'Name',
        flex: 1},
    {
        xtype: 'gridcolumn',
        text: 'Total',
        dataIndex: 'Total',
        name: 'Total',
        width: 80,
        align: 'center'},
    {
        xtype: 'gridcolumn',
        text: 'Size / Ref',
        dataIndex: 'SizeReference',
        name: 'SizeReference',
        width: 80,
        align: 'center'},
    {
        xtype: 'gridcolumn',
        text: 'Size L',
        dataIndex: 'SizeLength',
        name: 'SizeLength',
        width: 80,
        align: 'center'},
    {
        xtype: 'gridcolumn',
        text: 'Size W',
        dataIndex: 'SizeWidth',
        name: 'SizeWidth',
        width: 80,
        align: 'center'},
    {
        xtype: 'gridcolumn',
        text: 'Quantity',
        dataIndex: 'Quantity',
        name: 'Quantity',
        width: 80,
        align: 'center'},
    {
        xtype: 'gridcolumn',
        text: 'Meterage',
        dataIndex: 'Meterage',
        name: 'Meterage',
        width: 80,
        align: 'center'}
    ],
    initComponent: function() {
        var me = this;
        var store = Ext.create('Mis.store.MaterialPurchaseOrders');

        Ext.applyIf(me, {
            store: store,
            dockedItems: [{
                xtype: 'pagingtoolbar',
                store: store,
                dock: 'bottom',
                displayInfo: true,
                displayMsg: 'Displaying records {0} - {1} of {2}  ',
                emptyMsg: "No records to display ",
                flex: 1}]
        });
        me.callParent();
    }
});​
person Johan Haest    schedule 09.08.2012
comment
Привет Йохан, спасибо за это. Действительно полезный код. Я реализовал эту технику, но все еще не в счет. если я добавлю следующее в хранилище, я получу 0, хотя общее количество json равно 33. обратный вызов: alert(store.getTotalCount()),. - person frosty; 10.08.2012
comment
Попробуйте изменить имя вашего totalProperty, у меня нет других идей. Вот что мы используем: totalProperty: 'TotalItems' - person Johan Haest; 10.08.2012