2012-04-26 70 views
0

比方說,我們按照原來的文章http://www.sencha.com/learn/the-mvc-application-architecture和有這樣的店:無限滾動網格和MVC

Ext.define('AM.store.Users', { 
    extend: 'Ext.data.Store', 
    model: 'AM.model.User', 
    autoLoad: true, 

    proxy: { 
     type: 'ajax', 
     url: 'data/users.json', 
     reader: { 
      type: 'json', 
      root: 'users', 
      successProperty: 'success' 
     } 
    } 
}); 

,我們決定實施無限滾動網格。要做到這一點,我們需要刪除autoLoad: true並手動調用store.guaranteeRange(...)

那麼這樣做的最佳場所是什麼?

回答

1
Ext.define('AM.store.Users', { 
    extend: 'Ext.data.Store', 
    model: 'AM.model.User', 
    autoLoad: true, 
    remoteSort: true, 
    buffered: true, 
    pageSize: 100, 
    proxy: { 
     type: 'ajax', 
     url: '/postdata/list', 
     limitParam: 'size', 
     startParam: undefined, 
     reader: { 
      type: 'json', 
      root: 'data', 
      successProperty: 'success' 
     } 
    } 
}); 

演示這裏http://ext4all.com/post/extjs-4-1-grid-infinite-scroll-in-mvc

1

某處您呈現網格。你可以覆蓋afterRender()方法,或者如果它是模態網格/對話框 - 在展示它之前加載商店。

夫婦側面說明(我想提出一個觀點即autoLoad通常false所有商店:

  • 如果你會使用你的應用程序的任何身份驗證 - 你 必須禁用autoLoad上所有商店
  • 如果您有多個商店(比如說5-10 +?),強烈建議您也禁用它們,但您不希望在應用程序啓動時同時加載所有這些商店。很多時候你需要保證有些事情很開心在商店加載完成後,然後再次禁用autoLoad,請手動訂閱加載事件和load()商店。