在Extjs的編碼中,從gird表格裏選擇一條記錄,加載到form表單裏來,是經常要做的一件事。然後,當form裏有combox的話,加載數據進來,往往只是單純的加載了一個value,而不是顯示我們想要的那個displayValue。
其實原因很簡單,combox中的數據源是異步加載的方式,所以form.getForm.loadRecord(record)的時候,combox中的store此時還沒有加載數據進來,so結果就如我們遇到的問題那樣,combox最後顯示的只是個value。
今天搜了一下google,在其他人的blog上看到了解決辦法。
store_combo是combox的store,store先load,在回調函數裏,再進行form表單的數據加載。這樣就解決問題了。
PS:如果各位還有更好的辦法,請告訴我哦~!
- store_combo.load({
- callback : function(r, options, success) {
- if (success) {
- Ext.getCmp('register_form').getForm().loadRecord(record);
- } else {
- Ext.Msg.alert('失敗','角色數據載入失敗');
- }
- }
- });