3月 31, 2020 Sencha
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()` 方法內。
過去文章
2025 (9)
4 (5)
3 (1)
2 (3)
2024 (25)
11 (3)
10 (3)
9 (1)
3 (18)
2022 (6)
10 (1)
6 (2)
5 (1)
3 (1)
1 (1)
2021 (21)
11 (7)
7 (1)
6 (2)
5 (2)
4 (6)
3 (2)
2 (1)
2020 (92)
12 (1)
11 (2)
10 (4)
9 (10)
8 (5)
7 (1)
6 (3)
5 (1)
4 (4)
3 (25)
2 (7)
1 (29)
2019 (57)
12 (25)
11 (7)
9 (25)