Javascript 获取并发送id标记字段值。Extjs
网格中有两个字段:Javascript 获取并发送id标记字段值。Extjs,javascript,extjs,extjs6,Javascript,Extjs,Extjs6,网格中有两个字段: ... { text: 'Спец. учетка', sortable: true, dataIndex: 'specuserName', flex: 2, editor: { xtype: 'combobox',
...
{
text: 'Спец. учетка',
sortable: true,
dataIndex: 'specuserName',
flex: 2,
editor: {
xtype: 'combobox',
store: 'Vendors',
displayField: 'name',
valueField: 'name',
//editable: false,
queryMode: 'remote',
//forceSelection: true,
triggerAction: 'all',
allowBlank: true
}
},
{
header: 'Сотрудники группы',
dataIndex: 'users',
flex:2,
editor: {
xtype: 'tagfield',
typeAhead: true,
queryMode: 'remote',
filterPickList: true,
triggerOnClick: true,
displayField: 'name',
valueField: 'name',
triggerAction: 'all',
store: 'IntraUsers',
}
},
...
ViewController看起来像:
Ext.define('App.view.MainIntranetController', {
extend: 'Ext.app.ViewController',
alias: 'controller.intranetcontainer',
onGridEditorIntraEdit: function (editor, ctx, eOpts) {
//combobox
var vendorColIdx = 2;
var combo = ctx.grid.columns[vendorColIdx].getEditor(ctx.record);
var vendorRecord = combo.findRecord('name', combo.getValue());
console.log(vendorRecord);
ctx.record.set('specuserId', vendorRecord.get('id'));
//tagfield
var vendorColIdx = 3;
var tagfields = ctx.grid.columns[vendorColIdx].getEditor(ctx.record);
var valuetag = tagfields.getValue();
//ctx.record.set('mainusersId', vendorRecord.get('id'));
//ctx.record.set(valuetag);
//console.log(ctx.record);
//ctx.grid.getStore().sync();
}
});
首先,我获取所选组合框的id
值并将其设置为发送到服务器,然后我尝试获取所选tagfields
值的id将它们发送到服务器,但我没有正确理解。
如何设置所选值的id使用tagfield
转到服务器。
谢谢。由于将标记字段的
显示字段设置为“name”会阻止获取所选记录ID的数组,因此另一种实现方法是使用标记字段的方法。我们可以将此方法的结果传递给,并仅收集ID:
var tagfieldSeletedIds = Ext.Array.map(tagfield.getValueRecords(), function(record) {
return record.getId()
});
由于将标记字段的displayField
设置为“name”会阻止获取所选记录ID的数组,因此实现这一点的另一种方法是使用标记字段的方法。我们可以将此方法的结果传递给,并仅收集ID:
var tagfieldSeletedIds = Ext.Array.map(tagfield.getValueRecords(), function(record) {
return record.getId()
});
你说得不对到底是什么意思?您在valuetag
中实际得到了什么?@scebotari66我得到了值,但我需要id值要将它们发送到服务器,这是因为您为标记字段的valueField
config指定了“name”。当我在valueField配置中指定id时,请尝试指定“id”@scebotari66,即保存的值在tagfield字段中,显示为id,我需要以名称的形式显示。您不正确的意思是什么?您在valuetag
中实际得到了什么?@scebotari66我得到了值,但我需要id值要将它们发送到服务器,这是因为您为标记字段的valueField
config指定了“name”。当我在valueField配置中指定id时,请尝试指定“id”@scebotari66,即保存的值在tagfield字段中显示为id,我需要以名称的形式显示我做到了,并且它可以工作。谢谢var tagfields=ctx.grid.columns[vendorColIdx].getEditor(ctx.record);var tagfieldSeletedIds=Ext.Array.map(tagfields.getValueRecords(),函数(record){return record.getId()});ctx.record.set('users_id',tagfieldSeletedIds);ctx.grid.getStore().sync()代码>我做到了,而且效果很好。谢谢var tagfields=ctx.grid.columns[vendorColIdx].getEditor(ctx.record);var tagfieldSeletedIds=Ext.Array.map(tagfields.getValueRecords(),函数(record){return record.getId()});ctx.record.set('users_id',tagfieldSeletedIds);ctx.grid.getStore().sync()代码>