繁体   English   中英

ExtJS 4.2 - 如何将数组映射到模型字段并在网格列上动态显示?

[英]ExtJS 4.2 - How to map array to a model field and display dynamically on a grid column?

我有这个json数据:

 { id: 1, name: 'something', description: 'somethingsomething', customers: [{ id: 1, username: 'cust1' }, { id: 2, username: 'cust2' }] }

虽然我在网格面板上显示前三个字段没有问题,但是我在检索customers字段的数组对象时遇到了问题。 我的模型是这样的:

 fields: [ 'id', { name: 'name', sortType: Ext.data.SortTypes.asUCString }, 'permanent', { name: 'description', Type: Ext.data.SortTypes.asUCString }, { name: 'customers', Type: Ext.data.SortTypes.asUCString }, { name: 'username', Type: Ext.data.SortTypes.asUCString, mapping: 'customers[0].username' } ]

当我尝试访问customers[0].username ,它只检索指定索引上的那些。 删除索引号返回undefined因为我认为它正在寻找要返回的索引。 如何正确检索所有customers: []并将其显示到我的网格中,其结构如下:

 { xtype: 'gridpanel', store: oStore, viewConfig: { loadMask: false, enableTextSelection: true }, hideHeaders: false, bodyBorder: true, columns: [{ text: 'Customer', dataIndex: 'username', flex: 1 }, { header: '', xtype: 'actioncolumn', itemId: 'remove-player-btn', width: 50, sortable: false, resizable: false, menuDisabled: true, items: [{ icon: 'resources/img/x.png', tooltip: 'Remove Player', scope: oMe }], editor: { xtype: 'text', name: 'deleteRow' } }] }

您可以使用模型中可用的转换函数。此转换函数用于某些计算目的和映射响应数据以满足我们的需要。例如,我将映射用户名如下:

fields: [
{
  name:'username',
  convert:function(value,model)
  {
    return model.data.customers.username;
  }
}
]

id字段使用相同的技术。如果有任何问题,请回复。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM