0

私は extjs を初めて使用し、Ext.data.store(); からのレコード数に応じて動的画面の作成に取り組んでいました。getTotalCount/getCount は、ストアからレコード数を取得するために使用されます。レコードの総数を var に保存して返す必要があります

私はこのようなことをしようとしています

function Get_count()
{  
     var num;                            
     CacheStore.on({

           'load':{

            fn : function(store,records,options){
                    num = getTotalCount();
                    //console.info('Store count = ', tsize);
                    //console.info(' count = ', getCount());
            },
            scope: this
    },
    'loadexception' : {
            fn : function (obj,options,response,e){
                    //console.info('error = ', e);
            },
    scope : this
    }

});

     // this is a wrong logic but have to do something similar 
    //return num;  //return num 

    };
    tsize  = Get_count();

私は常に tsize で null を取得します。getTotalCount() の代わりに getCount() も試しましたが、同じ問題が発生しています。

どこが間違っているのかわからない

4

1 に答える 1

1

あなたの論理はここで少し突かれています。ストアの読み込みが完了したときにフックするリスナーをストアに追加する関数を起動することはできません。(まあ、できますが、これは微妙なバグです)。

あなたがする必要があるのは、作成時にストアでリスナーを宣言することです。これには、数値を使用する関数が含まれています。

cacheStore =Ext.create...
cacheStore.on('load',function(store,records,e){
    //dosomestuff that needs the count
    var num=  store.totalCount()
    //now you use the num in here, else you create an async error

    //or you can ...
    my.someFunc(num); 
    //in here, but you can only run it after the store has loaded
},this);
于 2012-06-05T15:08:32.463 に答える