我有下面的组合框代码。根据用户输入的前两个字符,我通过Ajax请求提取了一些选项,并让用户选择了一个。现在的问题是,我将其设置为使用|发送字段的“ fieldValue1。'|'.fieldValue2”值。之间的分隔符。我想知道是否有一种方法可以在不执行分隔符的情况下分别发送fieldValue1和fieldValue2吗?
xtype: 'combo',
autoLoad: true,
hideTrigger: true,
fieldLabel: 'Product',
displayField: 'Description',
valuefield: 'fieldValue1.'|'.fieldValue2',
name: 'product',
queryMode: 'remote',
queryParam: 'entry',
typeAhead: true,
minChar: 2,
store: {
fields: ['text', 'value'],
proxy: {
type: 'ajax',
url: TradeTransfer.Global.TradeTransferAPI + '/Requests/searchcommoditycodes',
reader: {
type: 'json'
}
},
sorters: [{
property: 'Exchange',
direction: 'ASC'
}]
}
答案 0 :(得分:1)
如果要保留所选记录的多个属性,则一种方法是在组合框中具有一个额外的属性,并在select
事件期间对其进行设置:
来自https://www.sencha.com/forum/showthread.php?82033-Multiple-Value-binding-with-combo
var hidden = new Ext.form.Hidden({
name: 'userid'
});
var combo = new Ext.form.ComboBox({
...
displayField: 'username',
valueField: 'id',
hiddenName: 'id',
listeners: {
select: function(combo, record, index){
hidden.setValue(record.get('userid'));
}
}
});
但是根据您的目标,您可以使用hiddenName
属性(https://docs.sencha.com/extjs/4.1.3/#!/api/Ext.form.field.ComboBox-cfg-hiddenName)
将与之同步的基础隐藏字段的名称 组合的基础价值。如果组合使用此选项很有用 是执行常规表单发布的表单元素的一部分。隐藏的领域 除非指定了hiddenName,否则不会创建。