如何从控制器更改extjs Combobox的“valueField”
How to change "valueField" of extjs Combobox from controller
我是 Extjs 的新手,以下是我的应用程序结构的一部分
视图 - 包含组合框
xtype: 'combobox',
itemId: 'myCombo',
fieldLabel: 'myLabel',
queryMode: 'local',
store: Ext.create('Ext.data.ArrayStore', {
fields: [{
name: 'key1'
}, {
name: 'key2'
}],
storeId: 'myStore',
autoLoad: false
}),
displayField: 'key1',
valueField: 'key2',
控制器 - 包含对组合框的引用
Ext.define('MyApp.controller.myController', {
extend: 'Ext.app.Controller',
views: ['MyApp.view.MyView'],
refs: [{
ref: 'myComboRef',
selector: '#myCombo'
}],
this.control({
'#myCombo': {
change: this.getData
}),
.
.
.
getData: function(currFeild, newValue, oldValue, eOpts){
// I can get "valueField" of myCombo by
var valueFieldData = this.getMyComboRef().valueField;
// I want to change "valueField" to "key3"
// ????????
});
那么任何人都可以告诉我,我如何为"myCombo"设置新的值字段?
我已经访问了这个链接。但是,它并没有多大帮助
我认为更改组合valueField
不是一个好的解决方案。虽然我可以通过comob.valueField = 'newValueField';
例如在您的更改事件处理程序中执行此操作。尽管 getValue()
fn 只会在您下次更改值时显示新值字段的值。所以我认为这不是一个好方法。
valueField
应该是标识存储中记录的字段,通常不应更改。如果您需要访问所选记录的其他字段,您可以获取商店的所选记录,然后访问所需的字段。
例如,在您的更改事件处理程序中:
change: function(cmp, newValue){
var record = cmp.store.findRecord(cmp.valueField, newValue);
var field2Value = record.get('field2');
//do something with your field2Vlaue...
}
我还为您制作了一个小提琴,以便您可以在真人版中看到此示例。https://fiddle.sencha.com/#fiddle/jek
相关文章:
- 从dojo comboBox中删除选项
- sencha面板覆盖了我试图放置在它下面的内容.datePicker和comboBox
- 如何使用jquery combobox拥有不同的最小长度
- 如何从控制器更改extjs Combobox的“valueField”
- ComboBox typeAhead有效,但在某些行为条件下valueField为空
- 如何设置图形.valueField
- 用java脚本填充combobox
- 如何通过JavaScript创建Telerik MVC Combobox
- Combobox with javascript on ruby on rails
- Ext JS搜索在MultiSelect ComboBox中的可能
- 如何使用 JQuery 和 Ajax 使用另一个 ComboBox 的内容更新 HTML 文件中 ComboBox 的内
- 将自定义类添加到 jQuery UI 的 ui-autocomplete Combobox Div
- KendoUI ComboBox 显示不正确的 REST JSON 解析
- Javascript combobox
- Telerik ComboBox FindControl 在项模板内
- 使用 Combobox 类别和 Textbox JavaScript 进行过滤
- jQueryUI Combobox,以避免外部.JS
- dependent combobox in datagrid easyui
- OptGroup in kendo ui combobox
- 如何动态设置Extjs的ComboBox valueField