1. 程式人生 > >Extjs4中combobox控制元件-資料加載出來,但一直在loading.

Extjs4中combobox控制元件-資料加載出來,但一直在loading.

Extjs4中combobox控制元件---資料加載出來,但一直在loading....

      今天在做combo級聯的時候碰到這個問題,很令人頭疼,反覆檢查程式碼,並沒發現有什麼問題;而且更令人詫異的是,在我同事的機器上執行卻是好好地,而且他用的ie版本跟我的版本一樣,那這是什麼問題呢?不得而解、、、、、、、

      但問題總是得去解決的,但是怎麼解決呢?

      首先,我知道我要解決的問題是將LoadMask這個東東去掉就行了。於是去查API,看combo裡面有沒有關於loadMask這個屬性或者方法,很遺憾沒有。

      但是怎麼可能呢,於是一個屬性一個屬性去看,看到defaultListConfig這個屬性,英文解釋是:Set of options that will be used as defaults for the user-configured

listConfigobject.大概意思是說:一組選項將會被用作使用者配置的listConfig物件的預設值。

      點選listConfig進入該屬性API,An optional set of configuration properties that will be passed to theExt.view.BoundList's constructor.大概是說:一組可選的屬性配置將會傳遞到Ext.view.BoundList的

建構函式中去。在下面我看到這樣一段程式碼Ext.view.BoundList.loadingText- defaults to'Loading...',

這不正是載入文字嗎?

   為了獲得更多的資訊我進入Ext.view.BoundList裡檢視,An internal used DataView for ComboBox.

大概是說:BoundList是combo的一個內部使用的資料檢視。檢視它的屬性列表,哈哈,找到了loadMask,這不正是

我所要的東西嗎

loadMask: Boolean/Object

False to disable a load mask from displaying will the view is loading.

This can also be aExt.LoadMaskconfiguration object. Defaults totrue

.

    在我的combo控制元件裡面加上如下一段程式碼:

       defaultListConfig:{
             loadMask: false
       }

問題解決了,LoadMask沒了。

//------------------------------------------------------------------------------------------------------------------------

資料已經載入完了 但依然一直loading中。。。

原本以為是ajax請求除了問題,於是寫了個grid的ajax測試,卻非常正常。遂經過查閱API,看示例,發現了mask這個東西。
Ext combox有一個預設渲染配置:

?
1 2 3 4 5 6 7 8 9 10 //.................................... defaultListConfig: { emptyText: '', loadingText: 'Loading...', loadingHeight: 70, minWidth: 70, maxHeight: 300, shadow: 'sides' } //....................................

其中有loadingText: ‘Loading…’,這一個配置項,這個就是loadMask。
在這段預設配置中僅有顯示,沒有隱藏的設定。所以導致顯示出來後一直不消失。需要手動設定不讓其顯示或者資料載入完成後隱藏掉它。

通過查閱資料,有兩種可行方法:

一、覆蓋預設配置,設定loadMask為不顯示。

?
1 2 3 4 5 //.................................................... listConfig: { loadMask:false } //....................................................

二、在資料載入完成後執行unmask使其隱藏:

?
1 2 3 4 //............................................. combox.getEl().unmask(); //.............................................

轉載請註明出處!

This entry was posted in Extjs. Bookmark the permalink.