2011-03-03 86 views
0

在一個Ext Js-應用程序我工作我有一個窗體面板(包括其他控件)包含三個組合框,每個組合框都有不同的數據存儲區。我需要用現有數據加載表單並在表單中顯示。這適用於所有simpel控件(文本框,複選框),但組合框存在問題。分機:綁定數據存儲後的組合的數據存儲已加載

每個組合框都使用數據存儲,但是我可以看到在表單加載其自己的數據之前只有一個存儲加載,導致該組合框顯示正確的文本,另外兩個組合框顯示值。如果我單擊並關閉組合框而未進行選擇,則會顯示正確的文本。

有沒有辦法延遲表單的加載或表單的綁定,直到所有的數據存儲加載?數據存儲區是自動加載的本地存儲區,表單面板在afterlayout事件中調用它自己的加載。

回答

1

問題是,加載您的表單執行的setValue是在實際加載組合框的存儲之前執行的。

您可以嘗試實現修復禿鷹和ExtJS的動物在這個論壇主題已經propsed上sencha.com:http://www.sencha.com/forum/showthread.php?75751-OPEN-42-ComboBox-s-setValue-call-with-a-remotely-loaded-Store

它基本上只是延遲上的任何組合框的setValue調用,直到ComboBox的商店是完全加載。

+0

似乎很奇怪,需要這樣的修復,我想這是一個很常見的情況。或者是通過使用遠程類型的非自動加載數據存儲,在表單上使用組合框的首選方式?有關這方面的文檔非常薄,我無法弄清楚推薦的方法是做什麼這些事情...... – JDT 2011-03-03 12:33:13

+0

你不是第一個注意到這個......組合框的實現和它們的異步本質是一段時間以來,我一直是ext社區內的一個討論點,我發佈的鏈接說明了這一點,因爲有幾個請求將修復添加到官方的ext分發中。有很多地方可以改進分機,但總的來說這是一個很棒的系統。 – ChrisR 2011-03-03 13:22:04

0

渲染完成後加載表單面板。是否有任何具體的原因,你在加載後的事件表格?

之後加載表單事件而不是afterlayout。當所有表單完全呈現時,發生afterrender事件。

+0

這不是由於渲染,而是由於表單加載操作在三個組合框存儲加載之前執行的事實。由於商店的異步性質,這不是很簡單。 – ChrisR 2011-03-03 12:14:22