1. 読み込みとコールバックに関する問題 ExtJs ストアは通常、読み込み時に遅延し、読み込みが完了するまでデータが表示されません。プロンプトメッセージを追加する必要があります。
しかし、Store には waitMsg 属性がありません。
解決策:
1. ストアにリスナーを追加し、beforeload イベントをリッスンし、ロード前にプロンプト ボックスをポップアップ表示し、ロードが完了したらプロンプト ボックスを閉じます。
2. コールバック関数はロードが完了した後に実行されるため、プロンプト ボックスを閉じることはそれによって完了します。
3. ストアの reload メソッドに必ずコールバック関数を追加してください。プロンプト ボックスは閉じられました
例のメイン コードは次のとおりです:
varmsgTip; // 使用前に定義し、グローバル変数として定義する必要があります。
var reportStore=new Ext.data.Store({
proxy:reportProxy,
reader: reportReader,
listeners:{
beforeload:function(){
msgTip = Ext .MessageBox.show({
title: 'プロンプト',
width : 250,
msg: 'ページレポート統計を更新中です。お待ちください...'
})
}
}
}); , options, success){
msgTip.hide(); // 読み込みが完了しました。プロンプト ボックスを閉じます
}
}); 注: ページを更新するために reload が呼び出された場合は、再読み込みする必要があります。プロンプト ボックスを閉じるコールバック関数も追加します。
reportStore.reload({
callback : function(records, options, success){
msgTip.hide(); // 読み込みが完了したので、プロンプト ボックスを閉じます
}
});
----------以下はその他のパラメータです-----
store.load({
params:{start:0, limit:20}, //Parameters
// callback はロード完了時に実行されるコールバック関数です。これには 3 つのパラメータが含まれます: records パラメータは取得されたデータを表し、
// options はロードの実行時に渡されるパラメータを表します。 ()、success は読み込みが成功したかどうかを表します。
callback: function(records, options, success){
Ext.Msg.alert('info', 'Loading completed');
scope: store, //スコープはコールバック関数の実行時のスコープを指定するために使用されます。
add: false // Add が true の場合、load() で取得したデータが最後に追加されます。元のストア データ。
// それ以外の場合は、以前のデータが最初にクリアされ、その後、取得されたデータがストアに追加されます。
2. あるストアから特定の条件を満たすレコードを別のストアに追加します
コードをコピー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); // 相乗りリストをロードします。