2013-08-21 3 views
0

Я получаю контактные данные от PhoneGap и отображается в виде списка Sencha Touch. Я использую плагин ListPagination для загрузки данных, когда полоса прокрутки достигает конца.ListPagination для данных локального массива в Sencha Touch

Но проблема ListPagination работает только с удаленными данными, и поэтому pageSize собственность работает в этом случае.

Но здесь я храню данные PhoneGap в массиве и загружаю его, используя Ext.getStore('ContactStore').setData(arr).

Так можно ли в Sencha Touch выполнить разбиение на страницы локально, используя ListPagination?

ответ

0

Попытайтесь переопределить метод магазина load, вызвав его setData() только подмножеством всего массива.

В производном классе магазине:

Ext.define('App.store.XXX', { 
    extend: 'Ext.data.Store', 
    config: { 
     storeId: 'xxx', 
     mypage: 0,    // use this as 'cursor' in your array 
     pageSize: 10,    
     model: 'App.model.XXX', 
     ... 
    }, 
    load: function() { 
     this.mypage += 1; 
     // maybe add some sanity check on array dimension 
     this.setData(Ext.Array.slice(arr, 0, this.mypage*this.getPageSize())); 
    } 
}); 

Я не проверить код, приведенный выше. Получите это как «идею» разрешения.

+0

вы можете дать мне пример? – Hunt

+0

Я только что добавил пример идеи –

0

Я нашел решение для получения выгружаемого списка из массива в Sencha Touch 2.4. Хитрость заключается в том, чтобы подключить beforeload - событие магазина и установить мир данных из массива.

Здесь вы найдете код: http://www.soft4tec.de/development/sencha-touch/list-paging-with-array-store.html

Смежные вопросы