хранить totalLength extjs

У меня есть такой магазин:

var store = new Ext.data.Store({
    id: 'store',
    url: 'user-list',
    remoteSort: true,
    reader: new Ext.data.JsonReader({
        root: 'data',
        totalProperty: 'result',
        id: 'id'
    }, [....])
});
store.load({
    params: {
        start: 0,
        limit: myPageSize
    }
});

как я могу получить доступ к totalLength из моего массива. я использовал это следующее утверждение, но они не работали:

console.log(store.totalLength)

console.log(this.store.totalLength)

console.log(store.getTotalCount())

console.log(this.store.getTotalCount())

они возвращают «неопределенный» результат.

Результат JSON моего сервера выглядит следующим образом:

success:true

result:26

data:[Object]

person masoud sharifi    schedule 19.11.2011    source источник


Ответы (2)


Вы должны указать URL внутри атрибута прокси.

var store = new Ext.data.Store({
      id:'store',  
      proxy: new Ext.data.HttpProxy({
        url: 'user-list'
    }),
      remoteSort: true,
      reader: new Ext.data.JsonReader(
          {
            root:'data',
            totalProperty: 'result',
            id:'id'
          }, [
            ....
          ]
      )
    });


store.load({
        params: {
            start: 0,          
            limit: myPageSize
        }
    });

Тогда попробуй store.getCount(), этот способ работает нормально, с этим проблем нет.

person dku.rajkumar    schedule 23.11.2011

Как в ExtJS 3, так и в 4 вы можете использовать

store.getCount()

вернуть количество записей в хранилище

person JamesHalsall    schedule 20.11.2011
comment
так что он работает, он возвращает значение... тогда как до того, как ваши другие подходы возвращали «неопределенное». Где-то в вашем коде должна быть проблема, из-за которой записи не загружаются. - person JamesHalsall; 20.11.2011