ExtJS 的 Combobox 方便好用,配上 Proxy 後可以自動載入 Ajax 的 JSON 內容。不過 API 內就好像沒有一個方法設定自動選擇第一選項。那應該要如何達成呢?
### 使用 Store 的 load 事件
我們可以通過使用 Store 的 load 事件,把 load 入 Store 的記錄抽取出來,然後使用 Combobox 的 `select(r)` 來設定選擇項目。
```js
/**
* on load event listener callback
*/
function load(this, records, successful, operation, eOpts) {}
```
可以透過 `load` 事件來取得 `records` 資料。
不過我們無法從 Store 取得 Combobox 元件,因為一個 Store 可以 Attach 到很多不同的元件,所以我們需要在第三方的元件上設定好關聯事件。這最好是 Combobox 的 top parent 元件。
### 設定方法
以下時通過使用 `load` 事件來自動選擇第一選項目的例子 :
```js
combobox.getStore().on('load', function(ele, records) {
if( records.length > 0 ) {
combobox.select(records[0]);
}
}};
```
而這段代碼運行的最佳時機,可以是 combobox 元件的 top parent 元件的 `initComponent()` 方法內。