ExtJS框架中的ComboBox可以讓用戶選擇一個(gè)或多個(gè)選項(xiàng)。它可以從JSON數(shù)據(jù)源中獲取選項(xiàng)值,以供用戶進(jìn)行選擇。下面是一個(gè)簡(jiǎn)單的例子:
Ext.create('Ext.form.ComboBox', { fieldLabel: 'Country', displayField: 'name', valueField: 'id', store: { proxy: { type: 'ajax', url: 'countries.json' }, autoLoad: true, fields: ['id', 'name'] } });
在上面的代碼中,我們創(chuàng)建了一個(gè)ComboBox,并設(shè)置了以下屬性:
fieldLabel
:用于標(biāo)識(shí)ComboBox的標(biāo)簽文本;displayField
:展示在ComboBox下拉列表中的數(shù)據(jù)字段;valueField
:與選擇的數(shù)據(jù)關(guān)聯(lián)的字段;store
:ComboBox的數(shù)據(jù)源。
ComboBox的數(shù)據(jù)源使用了一個(gè)Ajax請(qǐng)求,請(qǐng)求一個(gè)名為countries.json
的JSON文件。該JSON文件的內(nèi)容應(yīng)該類似于以下格式:
[ { "id": 1, "name": "China" }, { "id": 2, "name": "United States" }, { "id": 3, "name": "Japan" } ]
ComboBox會(huì)自動(dòng)加載該JSON文件,并將其轉(zhuǎn)換為內(nèi)部數(shù)據(jù)存儲(chǔ)區(qū)。當(dāng)用戶點(diǎn)擊ComboBox時(shí),下拉列表中會(huì)顯示數(shù)據(jù)源中的選項(xiàng)。當(dāng)用戶選擇某個(gè)選項(xiàng)時(shí),ComboBox會(huì)將該選項(xiàng)的id
值作為實(shí)際值傳遞給服務(wù)器端。
總體來(lái)說(shuō),通過(guò)使用ExtJS中的ComboBox,我們可以輕松地提供一個(gè)基于JSON數(shù)據(jù)源的下拉菜單選擇器。