Как получить текущую страницу из панели инструментов пейджинга

У меня есть панель инструментов подкачки, реализованная в моей сетке с использованием extjs 4.1. Я получаю 20 наборов записей первой страницы. «но», когда я нажимаю «Далее», следующая страница не отображается. Я так понимаю проблема здесь

proxy: {
            type: 'ajax',
            scope: this,
            url: 'Controller/getData',
            extraParams: {
                PageNumber: this.currentPage, // this doesn't change on clicking next
                PageSize: 20

            },
            reader: {
                type: 'json',
                root: 'myTable',
                totalProperty: 'count'
            }

как вы можете видеть, PageNumber, который я передаю своему контроллеру, является статическим. Если я изменю его на любой номер, я получу эту страницу... так как же мне получить текущую страницу, чтобы я мог передать ее своему контроллеру.. ниже моя панель инструментов

bbar: Ext.create('Ext.PagingToolbar', {
            scope: this,
            store: myStore,
            displayInfo: true,
            displayMsg: 'Displaying Records {0} - {1} of {2}',
            emptyMsg: "No Records to display"
        })

пожалуйста, помогите... спасибо


person EagleFox    schedule 20.11.2012    source источник
comment
Вы уверены, что this всегда является областью вашего магазина?   -  person sra    schedule 20.11.2012
comment
да, сра... пожалуйста, смотрите моего читателя выше.. а также у меня есть общее количество записей, отображаемых в сообщении.. там указано отображение 1-20 из 100... и когда я нажимаю "Далее", отображается 21-40 и страница 2, но в сетке те же 20 данных со страницы 1   -  person EagleFox    schedule 20.11.2012


Ответы (1)


Я не уверен, смогу ли я вам помочь, вы проверили свой код обработки бэкэнда? Я имею в виду, насколько я знаю, то, как вы объявляете панель инструментов хранилища и подкачки, является правильным, поэтому, возможно, проблема существует на стороне сервера.

для справки, это моя боковая страница сервера (remote/data/user/mahasiswa/read.php) для обработки хранилища с поддержкой пейджинга:

$sql = "SELECT * FROM user";
$rs = mysql_query($sql);
$totalCount = mysql_num_rows($rs);
$sql = $sql." LIMIT ".$start.",".$limit;
$rs = mysql_query($sql);
while($obj = mysql_fetch_object($rs)){
    $arr[] = $obj;
}
echo '{success:true, totalCount:'.$totalCount.', data:'.json_encode($arr).'}';

тогда это мой магазин:

Ext.define('PMK.store.user.Mahasiswa', {
extend: 'Ext.data.Store',
model: 'PMK.model.user.Mahasiswa',
pageSize: 30,

proxy: {
    type: 'ajax',
    url: 'remote/data/user/mahasiswa/read.php',
    reader: {
        type: 'json',
        root: 'data',
        successProperty: 'success',
        totalProperty: 'totalCount'
    }
})

наконец, это мое мнение:

Ext.define('PMK.view.user.mahasiswa.List' ,{
extend: 'Ext.panel.Panel',
alias : 'widget.mhslist',

title:'Manage Mahasiswa',
layout:'fit',

initComponent: function() {
    this.items = [
        {
            xtype:'grid',
            store:'user.Mahasiswa',
            columns: [
                {xtype: 'rownumberer', width: 50, sortable: false},
                {header: 'Angkatan', dataIndex: 'ANGKATAN', sortable:true, width:60},
                {header: 'NIM', dataIndex: 'NIM', sortable:true, width:100},
                {header: 'Nama', dataIndex: 'NAMA', sortable:true, width:225},
                {header: 'Program Studi', dataIndex: 'PRODI', sortable:true, width:225},
                {header: 'Kelas', dataIndex: 'KELAS', sortable:true, width:50},
                {header: 'Dosen PA', dataIndex: 'DOSEN_PA', sortable:true, width:125},
                {header: 'Jalur', dataIndex: 'JALUR', sortable:true, width:50},
                {header: 'Asal Sekolah', dataIndex: 'ASAL_SEKOLAH', sortable:true, width:175},
                {header: 'Tempat Lahir', dataIndex: 'TL', sortable:true, width:100},
                {header: 'Tanggal Lahir', dataIndex: 'TGL', sortable:true, width:75},
                {header: 'JK', dataIndex: 'JK', sortable:true, width:25},
                {header: 'Alamat', dataIndex: 'ALAMAT', sortable:true, width:225},
                {header: 'Email', dataIndex: 'EMAIL', sortable:true, width:130},
                {header: 'Telp', dataIndex: 'TELP', sortable:true, width:100},
                {header: 'Agama', dataIndex: 'AGAMA', sortable:true, width:50},
                {header: 'Input Date', dataIndex: 'INPUT_DATE', sortable:true, width:125},
                {header: 'Input By', dataIndex: 'INPUT_BY', sortable:true, width:125},
                {header: 'Edit Date', dataIndex: 'EDIT_DATE', sortable:true, width:125},
                {header: 'Edit By', dataIndex: 'EDIT_BY', sortable:true, width:125}
            ]
        }
    ];

    this.bbar = Ext.create('Ext.PagingToolbar', {
        store: 'user.Mahasiswa',
        displayInfo: true,
        displayMsg: 'Displaying mahasiswa {0} - {1} of {2}',
        emptyMsg: "No mahasiswa to display"
    });

    this.callParent(arguments);
}
});
person Nick Laros    schedule 21.11.2012
comment
Лучше хотя бы кратко описать логику вашего решения. - person Serge Belov; 21.11.2012
comment
привет, Ник... спасибо за ваш ответ... я использую С#... не могли бы вы объяснить свой код на стороне сервера в С#... потому что я понятия не имею о php... и теперь я вижу ваш код php... Я уверен, что у меня с этим проблема... не могли бы вы помочь мне сделать то, что вы сделали на этом PHP, но на C# - person EagleFox; 23.11.2012
comment
Извините @EagleFox. Я не понимаю C #, но я попытаюсь объяснить, что я делаю внутри этого php-кода. $sql="SELECT * FROM user"; запрос, который будет выполнен в базе данных. $rs=mysql_query($sql); выполнить запрос. $totalCount=mysql_num_rows($rs); получить количество извлеченных записей. $sql=$sql." LIMIT ".$start.",".$limit; добавить в запрос параметр предела страницы. $rs=mysql_query($sql); выполнить запрос еще раз. while($obj = mysql_fetch_object($rs)){$arr[] = $obj;} выборка записи, а затем сохранение ее в массиве. наконец echo '{success:true,totalCount:'.$totalCount.',data:'.json_encode($arr).'}'; формат в json - person Nick Laros; 28.11.2012
comment
Спасибо за ваше объяснение, Ник... У меня был намек на то, что вы делали... но попытка реализовать это на С# - вот где я застрял - person EagleFox; 30.11.2012