首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

ExtJS ComboBox setValue() 無效:區分選中項與修改 Store 數據

     編輯:程式設計綜合問答

問題釐清

combo.setValue(value) 用於**選中**下拉列表中已存在的項 (匹配 valueField),不會修改下拉選項的文本或數據源。

場景一:想選中某個已有值

combo.setValue('targetValue'); // 正確,前提是 store 已加載且包含該 value

若無效,檢查:
1. Store 是否已加載完成 (store.load() 回調中調用)。
2. valueField 配置是否與傳入值類型一致 (字符串/數字)。
3. 值是否確實存在於 Store 中。

場景二:想修改下拉選項的顯示文本/值 (修改 Store 記錄)

var store = combo.getStore();
var record = store.getAt(0); // 或 store.getById(id)
// 修改記錄字段
record.set('displayField', '新文本');
record.set('valueField', '新值');
// Store 會自動觸發 combo 視圖更新

場景三:動態替換整個下拉數據

combo.bindStore(newStore); // ExtJS 5+
// 或
combo.store = newStore;
combo.getPicker().bindStore(newStore);

總結

  • setValue = 選中,不改數據源。
  • 改數據源 = 操作 store (增刪改記錄或替換 Store)。
  • 界面刷新後自動選中需在 store.load 回調或 boxready 事件中調用 setValue。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved