Настройка читателя в магазине extjs - PullRequest
2 голосов
/ 07 декабря 2011

У меня есть хранилище в extjs4, которое возвращает список объектов, и я хочу установить свойство считывателя, чтобы иметь возможность подсчитывать элементы, чтобы потом можно было использовать подкачку.Использование extjs уже поставляется со свойством count (totalCount) и указанным типом объекта (тем), в то время как у меня его нет, только список.

Кроме того, в моем коде сетка не распознает ограничение результатов на страницу, но панель инструментов подкачки делает:

var sm = Ext.create('Ext.selection.CheckboxModel');

Ext.define('Cliente', {
    extend: 'Ext.data.Model',
    fields: [{
        name: 'ID',
        type: 'int'
    }, {
        name: 'Nome',
        type: 'string'
    }, {
        name: 'Email',
        type: 'string'
    }, {
        name: 'RazaoSocial',
        type: 'string'
    }, {
        name: 'TipoDeCliente',
        type: 'string'
    }],
    idProperty: 'ID'

});

var store = Ext.create('Ext.data.Store', {
    pageSize: 3,
    model: 'Cliente',
    remoteSort: true,
    proxy: {
        type: 'ajax',
        url: 'http://localhost:4904/Cliente/ObterClientes',
        extraParams: {
            nome: '',
            tipopessoa: '',
            email: '',
            cpf: '',
            estado: '',
            cidade: '',
            cep: ''
        },
        reader: {
            type: 'json',
            root: 'data'
        },
        simpleSortMode: true
    },
    sorters: [{
        property: 'Email',
        direction: 'DESC'
    }]
});

var pluginExpanded = true;
var grid = Ext.create('Ext.grid.Panel', {
    width: 500,
    height: 250,
    title: 'Array Grid',
    store: store,
    selModel: sm,

    loadMask: true,
    viewConfig: {
        id: 'gv',
        trackOver: false,
        stripeRows: false
    },
    columns: [{
        id: 'gridid',
        text: "ID",
        dataIndex: 'ID',
        hidden: true
    }, {
        text: 'Nome',
        width: 150,
        sortable: true,
        dataIndex: 'Nome'
    }, {
        text: 'Tipo de Cliente',
        width: 100,
        sortable: true,
        dataIndex: 'TipoDeCliente'
    }, {
        text: 'Email',
        width: 150,
        sortable: true,
        dataIndex: 'Email'
    }],
    bbar: Ext.create('Ext.PagingToolbar', {
        store: store,
        displayInfo: true,
        displayMsg: 'Exibindo clientes {0} - {1} of {2}',
        emptyMsg: "Nenhum cliente"
    }),
    renderTo: 'clientes',
});

store.loadPage(1);

1 Ответ

1 голос
/ 08 декабря 2011

Хранилищу нужно общее количество, чтобы рассчитать параметры подкачки и показать общее количество.Ваша реализация на стороне сервера должна измениться, чтобы добавить это количество к вашим данным.Также загрузите данные как store.load(); вместо loadPage.

РЕДАКТИРОВАТЬ: у вас также есть лишняя запятая здесь: renderTo: 'clientes', Я бы посоветовал запустить ваш код через JSLint.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...