2016-03-16 3 views
6

fiddleのテストケースはautoLoad: trueで動作していますが、autoLoad: false(行86)の場合、TreePanel beforerenderイベントの行161で呼び出されたload()関数はデータをロードしません...TreeStore:autoLoad設定とload()関数の違いは

(非ツリー)パネルの場合、私は常にautoLoadをfalseに設定し、GridPanelのレンダリング時にそのストアをロードして完全に動作します。私はこれを最初のすべての店舗を読み込まないようにします(そして時にはフィルターを設定する)。
店舗のイベントであるbeforeloadは、ダブルロードを防止しています。

このTreeStoreの私の欠陥はどこにありますか?私は何の結果もなしに長い時間のソリューションを探しています...

+0

私は[Senchaフォーラム](https://www.sencha.com/forum/showthread.php?309963-TreeStore-different-behaviour-beetween-autoLoad-configuration-and-load())で質問しました。 - 機能) – Michel

答えて

1

ExtJS 4. Hidden treepanel with autoload falseで説明されているExt JS 4で同様の問題が発生しています。

私はあなたのフィドルにやったことは、私はちょうどあなたの店の設定で91行目に、次の

autoLoad: false, 
    root:{ 
    //expanded: true, // optional 
    children: [] 
    } 

を追加したことです。すべてが魔法のように働いた。

+0

'root:{expanded:true}'はqmat ...と同じではありません。この設定は、autoLoadを間接的にtrueに設定します。 – Michel

+0

@Michel実際には、 'children:[]'プロパティはカウントされ、 'expanded'もfalseになります。 – nenadg

+0

@Michelはここで働いています。https://fiddle.sencha.com/#fiddle/1873( 'beforerender'にstore.loadに遅延を入れました) – nenadg

0

私はあなたの問題を解決したと思います。

TreeStoreのルートプロパティを使用します。

/* 
* Store 
*/ 
Ext.define('Chronos.store.Clockings', { 
    extend : 'Ext.data.TreeStore', 
    requires: [ 
     //'Chronos.store.Session' 
    ], 
    model  : 'Chronos.model.Presence', 
    autoLoad : false, //true, // false, 
    //autoSync : true, // DEBUG 
    sortOnLoad : false, 
    pageSize : 0, 
    remoteFilter: true, 

    root: { 
     id: 'id', 
     expanded: true 
    }, 

    listeners: { 
     load: function(treestore, records, success) { 
      console.log(Date(), 'clockings loaded: ', success, treestore); 
     }, 
     beforeload: function (treestore) {    
      if(treestore.isLoading()) return false;   
     } 
    } 
}); 

ご希望のものをお探しですか?

+0

「ツリーストアは、ルートノードで展開がtrueに設定されている場合、の値がautoLoadの値に関係なくロードされることに注意してください」という理由で不幸にはなりません。[documentation](http://docs.sencha.com /extjs/5.1/5.1.1-apidocs/#!/api/Ext.data.TreeStore-cfg-autoLoad)。つまり、コードによってautoLoadが間接的にtrueに設定されますが、これは私が探しているものではありません。 – Michel

関連する問題