javascript - 获取和发送 id 标签字段值。extjs
问题描述
网格中有两个字段:
...
{
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();
}
});
我先获取选中combobox
值的id并设置发送到服务器,然后我尝试获取选中tagfields
值的id发送到服务器,但是我没有弄对。如何让选中值的id跟tagfield
去服务器。谢谢。
解决方案
由于将标签字段设置displayField
为“名称”会阻止获取所选记录 ID 的数组,因此实现此目的的另一种方法是使用标签字段的getValueRecords方法。我们可以将此方法的结果传递给Array 的 map 函数并仅收集 id:
var tagfieldSeletedIds = Ext.Array.map(tagfield.getValueRecords(), function(record) {
return record.getId()
});
推荐阅读
- javascript - JointJS 端口不起作用
- sql-server - SQL 透视一列中具有多个属性名称且另一列中的另一行中具有多个值的行
- python - 如何对字符串和 int 值数组、具有字母顺序和“反转”字母顺序的多个属性进行排序
- python - 使用 Python/Pandas 数据框的每一天的唯一数据
- python - 如何从目录中读取文件并将其转换为表?
- python - 如何在 Elasticsearch Python API 中只返回完全匹配
- javascript - 功能的画布部分不会运行?
- javascript - 查找动态生成的子节点 (React)
- java - 如何配置 activemq 队列以不对过期消息使用默认死信队列
- authentication - 带 JWT 的多租户身份验证策略