3月 31, 2020 Sencha

ExtJS 的 Combobox 方便好用,配上 Proxy 後可以自動載入 Ajax 的 JSON 內容。不過 API 內就好像沒有一個方法設定自動選擇第一選項。那應該要如何達成呢?

使用 Store 的 load 事件

我們可以通過使用 Store 的 load 事件,把 load 入 Store 的記錄抽取出來,然後使用 Combobox 的 select(r) 來設定選擇項目。

/**
* on load event listener callback
*/
function load(this, records, successful, operation, eOpts) {}

可以透過 load 事件來取得 records 資料。

不過我們無法從 Store 取得 Combobox 元件,因為一個 Store 可以 Attach 到很多不同的元件,所以我們需要在第三方的元件上設定好關聯事件。這最好是 Combobox 的 top parent 元件。

設定方法

以下時通過使用 load 事件來自動選擇第一選項目的例子 :

combobox.getStore().on('load', function(ele, records) {
if( records.length > 0 ) {
combobox.select(records[0]);
}
}};

而這段代碼運行的最佳時機,可以是 combobox 元件的 top parent 元件的 initComponent() 方法內。

過去文章
2025 年 (9)
04 月 (5)
03 月 (1)
02 月 (3)
2024 年 (25)
11 月 (3)
10 月 (3)
09 月 (1)
03 月 (18)
2022 年 (6)
10 月 (1)
06 月 (2)
05 月 (1)
03 月 (1)
01 月 (1)
2021 年 (21)
11 月 (7)
07 月 (1)
06 月 (2)
05 月 (2)
04 月 (6)
03 月 (2)
02 月 (1)
2020 年 (92)
12 月 (1)
11 月 (2)
10 月 (4)
09 月 (10)
08 月 (5)
07 月 (1)
06 月 (3)
05 月 (1)
04 月 (4)
03 月 (25)
02 月 (7)
01 月 (29)
2019 年 (57)
12 月 (25)
11 月 (7)
09 月 (25)