Необходимо создать новые экземпляры объектов Ext JS с помощью Ext.create
, поскольку объекты, созданные с помощью ключевого слова new
, не будут заботиться о системе классов Ext JS .
Когда вы посмотрите на исходный код метода load () , вы увидите, как применяются параметры конфигурации, а также:
store.load({
start: 0,
limit: itemsPerPage
});
Поскольку хранилище уже настроенос pageSize
опции limit
не нужны, поскольку он получает pageSize
по умолчанию.
store.load({
start: 0
});
Я бы также рекомендовал взглянуть на loadPage () метод, который обрабатывает правильную настройку всех соответствующих параметров подкачки:
store.loadPage(1);
Еще одно усовершенствование - установить autoLoad
в значение true, тогда вы можете полностью опустить загрузку хранилища.
Также нет необходимости создавать Ext.data.HttpProxy
вручную, поскольку объект конфигурации указывает тип ajax
и позаботится о создании правильного типа прокси для вас.
Поскольку вы указали JSON reader, не нужно устанавливать заголовок HTTP accept.Content-Type
в любом случае является заголовком ответа, а соответствующий заголовок запроса будет Accept
.
Поэтому ваш код должен выглядеть следующим образом:
Ext.onReady(onReady);
function onReady() {
var store = Ext.create('Ext.data.JsonStore', {
autoLoad: true,
pageSize: 10,
proxy: {
type: 'ajax',
url: '../Service.asmx/GetMyDvpt',
reader: {
type: 'json',
root: 'd',
totalProperty: 'total',
idProperty: 'Id'
}
},
fields: ['NOM_EXP', 'NOM_ESP', 'NOM_VAR', 'SURF_PG', 'DD_CYCLE_PROD']
});
Ext.create('Ext.grid.Panel', {
store: store,
columns: [
{ dataIndex: 'NOM_EXP', header: 'NOM_EXP' },
{ dataIndex: 'NOM_ESP', header: 'NOM_ESP' },
{ dataIndex: 'NOM_VAR', header: 'NOM_VAR' },
{ dataIndex: 'SURF_PG', header: 'SURF_PG' },
{ dataIndex: 'DD_CYCLE_PROD', header: 'DD_CYCLE_PROD', flex: 1 }
],
renderTo: 'panel',
title: 'Dvpt Grid',
width: 570,
height: 350,
dockedItems: [{
xtype: 'pagingtoolbar',
store: store,
dock: 'bottom',
displayInfo: true
}]
});
}
При решении подобных проблем яобычно тестируют бэкэнд-сервис с клиентом REST.Доступно множество дополнений для разных браузеров, например RESTClient для Firefox или Advanced REST clinet для Chrome.Убедитесь, что ваша служба работает правильно без какого-либо пользовательского интерфейса, просто отправив простой HTTP-запрос с заданными вручную параметрами.Переходите к части с графическим интерфейсом только тогда, когда все работает как положено.
Для части с графическим интерфейсом я призываю вас изучить исходный код Ext JS в документации API , она хорошо структурирована и задокументированаи вы многому научитесь.
Начиная с версии 4 Ext JS поставляется с инфраструктурой приложений MVC, которая значительно упрощает создание больших приложений RIA.Подробнее читайте в Руководстве по архитектуре приложений .