ExtJs的Store在加載

ExtJs的Store在加載時候一般是延遲加載的,這時候Grid就會先出現一片空白,等加載完成後才出現數據;因此,我們需要給它添加一個提示信息!

但是Store卻沒有waitMsg屬性。

解決方案:

1.給store添加監聽器,監聽beforeload事件,加載前彈出提示框,加載完成後關閉提示框

2.callback爲load的回調函數,在加載完成後執行,因此關閉提示框由它完成;

3.一定要給store的reload方法也添加callback函數,已關閉提示框

例子主要代碼如下:

var msgTip;          // 一定要定義在使用前,且定義爲全局變量
var reportStore=new Ext.data.Store({
      proxy:reportProxy,
       reader:reportReader,
      listeners:{
             beforeload:function(){
                   msgTip = Ext.MessageBox.show({
                   title:'提示',
                  width : 250,
                   msg:'頁面報表統計信息刷新中,請稍後......'
                });
       }
   }
});

reportStore.load({
    callback: function(records, options, success){
              msgTip.hide();    // 加載完成,關閉提示框
      }
});

注意:如果有調用reload來重新刷新頁面,reload也要添加callback函數來關閉提示框

reportStore.reload({
         callback: function(records, options, success){
            msgTip.hide(); // 加載完成,關閉提示框
         }
});

---------------------------------------------------------------------------------

--------------------------------------Store.load簡介-----------------------------

store.load({
       params: {start:0,limit:20},    //參數
            // callback是加載完畢時執行的回調函數,它包含3個參數:records參數表示獲得的數據,
          // options表示執行load()時傳遞的參數,success表示是否加載成功。
       callback: function(records, options, success){
                  Ext.Msg.alert('info', '加載完畢');
         },
        scope: store, //Scope用來指定回調函數執行時的作用域
           //Add爲true時,load()得到的數據會添加在原來的store數據的末尾,
          //否則會先清除之前的數據,再將得到的數據添加到store中
  add: true
});

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章