Extjs4 關(guān)于Store的一些操作(加載/回調(diào)/添加)
更新時(shí)間:2013年04月18日 16:50:59 作者:
本文詳細(xì)介紹下關(guān)于加載和回調(diào)的問題、從一個(gè)store添加符合某條件記錄給另一個(gè)store中,感興趣的朋友可以參考下,希望對你有所幫助
1、關(guān)于加載和回調(diào)的問題
ExtJs的Store在加載時(shí)候一般是延遲加載的,這時(shí)候Grid就會先出現(xiàn)一片空白,等加載完成后才出現(xiàn)數(shù)據(jù);因此,我們需要給它添加一個(gè)提示信息!
但是Store卻沒有waitMsg屬性。
解決方案:
1.給store添加監(jiān)聽器,監(jiān)聽beforeload事件,加載前彈出提示框,加載完成后關(guān)閉提示框
2.callback為load的回調(diào)函數(shù),在加載完成后執(zhí)行,因此關(guān)閉提示框由它完成;
3.一定要給store的reload方法也添加callback函數(shù),已關(guān)閉提示框
例子主要代碼如下:
varmsgTip; // 一定要定義在使用前,且定義為全局變量
var reportStore=new Ext.data.Store({
proxy:reportProxy,
reader:reportReader,
listeners:{
beforeload:function(){
msgTip = Ext.MessageBox.show({
title:'提示',
width : 250,
msg:'頁面報(bào)表統(tǒng)計(jì)信息刷新中,請稍后......'
});
}
}
});
reportStore.load({
callback: function(records, options, success){
msgTip.hide(); // 加載完成,關(guān)閉提示框
}
});
注意:如果有調(diào)用reload來重新刷新頁面,reload也要添加callback函數(shù)來關(guān)閉提示框
reportStore.reload({
callback: function(records, options, success){
msgTip.hide(); // 加載完成,關(guān)閉提示框
}
});
--------以下為其他參數(shù)------
store.load({
params:{start:0,limit:20}, //參數(shù)
// callback是加載完畢時(shí)執(zhí)行的回調(diào)函數(shù),它包含3個(gè)參數(shù):records參數(shù)表示獲得的數(shù)據(jù),
// options表示執(zhí)行l(wèi)oad()時(shí)傳遞的參數(shù),success表示是否加載成功。
callback: function(records, options, success){
Ext.Msg.alert('info', '加載完畢');
},
scope: store, //Scope用來指定回調(diào)函數(shù)執(zhí)行時(shí)的作用域
add: false //Add為true時(shí),load()得到的數(shù)據(jù)會添加在原來的store數(shù)據(jù)的末尾,
//否則會先清除之前的數(shù)據(jù),再將得到的數(shù)據(jù)添加到store中
});
2、從一個(gè)store添加符合某條件記錄給另一個(gè)store中
var MyDocnumStore_Load = function(store){
//var index = 0;
store.each(function(record) {
if(record.data.PlanCarNo != '' ) { //column_name 替換成你的列名, '1' 替換成你的值
if (record.data.Docnum != _rec.get('Docnum')){
var _TmpStr = record.data.UseDate+'----->'+record.data.PlanCarNo;
myDocnumStore.add({
'UpDocnum':record.data.Docnum
,'DocnumDesc':_TmpStr
,'UseDate':record.data.UseDate
,'PlanCarNo':record.data.PlanCarNo
});
}
}
})
myDocnumStore.sort('UseDate', 'ASC');
};
MyDocnumStore_Load(mystore); //載入可拼車列表;
ExtJs的Store在加載時(shí)候一般是延遲加載的,這時(shí)候Grid就會先出現(xiàn)一片空白,等加載完成后才出現(xiàn)數(shù)據(jù);因此,我們需要給它添加一個(gè)提示信息!
但是Store卻沒有waitMsg屬性。
解決方案:
1.給store添加監(jiān)聽器,監(jiān)聽beforeload事件,加載前彈出提示框,加載完成后關(guān)閉提示框
2.callback為load的回調(diào)函數(shù),在加載完成后執(zhí)行,因此關(guān)閉提示框由它完成;
3.一定要給store的reload方法也添加callback函數(shù),已關(guān)閉提示框
例子主要代碼如下:
復(fù)制代碼 代碼如下:
varmsgTip; // 一定要定義在使用前,且定義為全局變量
var reportStore=new Ext.data.Store({
proxy:reportProxy,
reader:reportReader,
listeners:{
beforeload:function(){
msgTip = Ext.MessageBox.show({
title:'提示',
width : 250,
msg:'頁面報(bào)表統(tǒng)計(jì)信息刷新中,請稍后......'
});
}
}
});
reportStore.load({
callback: function(records, options, success){
msgTip.hide(); // 加載完成,關(guān)閉提示框
}
});
注意:如果有調(diào)用reload來重新刷新頁面,reload也要添加callback函數(shù)來關(guān)閉提示框
reportStore.reload({
callback: function(records, options, success){
msgTip.hide(); // 加載完成,關(guān)閉提示框
}
});
--------以下為其他參數(shù)------
store.load({
params:{start:0,limit:20}, //參數(shù)
// callback是加載完畢時(shí)執(zhí)行的回調(diào)函數(shù),它包含3個(gè)參數(shù):records參數(shù)表示獲得的數(shù)據(jù),
// options表示執(zhí)行l(wèi)oad()時(shí)傳遞的參數(shù),success表示是否加載成功。
callback: function(records, options, success){
Ext.Msg.alert('info', '加載完畢');
},
scope: store, //Scope用來指定回調(diào)函數(shù)執(zhí)行時(shí)的作用域
add: false //Add為true時(shí),load()得到的數(shù)據(jù)會添加在原來的store數(shù)據(jù)的末尾,
//否則會先清除之前的數(shù)據(jù),再將得到的數(shù)據(jù)添加到store中
});
2、從一個(gè)store添加符合某條件記錄給另一個(gè)store中
復(fù)制代碼 代碼如下:
var MyDocnumStore_Load = function(store){
//var index = 0;
store.each(function(record) {
if(record.data.PlanCarNo != '' ) { //column_name 替換成你的列名, '1' 替換成你的值
if (record.data.Docnum != _rec.get('Docnum')){
var _TmpStr = record.data.UseDate+'----->'+record.data.PlanCarNo;
myDocnumStore.add({
'UpDocnum':record.data.Docnum
,'DocnumDesc':_TmpStr
,'UseDate':record.data.UseDate
,'PlanCarNo':record.data.PlanCarNo
});
}
}
})
myDocnumStore.sort('UseDate', 'ASC');
};
MyDocnumStore_Load(mystore); //載入可拼車列表;
相關(guān)文章
Extjs中RowExpander控件的默認(rèn)展開問題示例探討
本文為大家探討下關(guān)于Extjs中RowExpander控件的默認(rèn)展開問題,下面有個(gè)不錯的示例,感興趣的朋友可以參考下2014-01-01extJs 下拉框聯(lián)動實(shí)現(xiàn)代碼
extJs 下拉框聯(lián)動實(shí)現(xiàn)代碼,需要的朋友可以參考下。2010-04-04Extjs 繼承Ext.data.Store不起作用原因分析及解決
有關(guān)Extjs 繼承Ext.data.Store 不起作用的原因有很多種,接下來與大家分享下,本人遇到的,這個(gè)Store寫出來之后 是不會起到作用的,感興趣的朋友可以看下詳細(xì)的原因及解決方法2013-04-04關(guān)于extjs4如何獲取grid修改后的數(shù)據(jù)的問題
如何獲取grid修改后的數(shù)據(jù)問題,下面是API的描述??梢垣@取各種值,感興趣的朋友可以參考下2013-08-08extjs_02_grid顯示本地?cái)?shù)據(jù)、顯示跨域數(shù)據(jù)
這篇文章主要介紹了extjs_02_grid顯示本地?cái)?shù)據(jù)、顯示跨域數(shù)據(jù)的具體實(shí)現(xiàn),需要的朋友可以參考下2014-06-06