Extjs嵌套数据类型定义和显示 (二)

本文介绍如何在Ext.grid.Panel中展示嵌套数据,特别是项目成员信息。通过调整Model定义,添加虚拟列'allMembers'来利用record.raw.members数据。在显示面板的实现中,使用Field的mapping或convert属性来处理数据拼接,以适应不同显示需求。
摘要由CSDN通过智能技术生成

在前一篇文章中,讲解了嵌套数据的模型定义,本篇文章主要讲解怎样在Ext.grid.Panel中显示嵌套的数据。


需求描述:

在Ext.grid.Panel中把定义的Project显示出来,项目成员显示在一列中。


因此需要稍微修改Model的定义,增加一个虚拟列:allMembers

/**
		 * 项目model定义
		 */
		Ext.define('Project', {
			extend : 'Ext.data.Model',
			fields : [ {
				name : 'projectId', //项目id
				type : 'string'
			}, {
				name : 'projectName', //项目名称
				type : 'string'
			}, {
				name : 'projectManager', //项目主管
				type : 'string'
			}, {
				name : 'allMembers', //项目成员列表
				type : 'string',
				convert : function(value, record) {
					var members = record.raw.memberList;
					var tempList = "";
					Ext.Array.forEach(members, function(item, index, allItems) {
						tempList += (item.memberName + " ");
					});
					return tempList;
				}
			}],
			hasMany : {
				model : 'ProjectMember',
				name : 'members'                //访问member的方法
				associationKey : 'memberList'     //读取数据的property
			}
		});


虚拟列中使用 convert属性,定义需要显示的内容,把member成员拼接成一个字符串,以便在Ext.grid.Panel中显示。

注: record最好使用 record.raw.members的数据。


加上显示面板:

//项目列表
		var projectPanel = Ext.create('Ext.grid.Panel', {
			store : projectStore,
			width : document.body.clientWidth * 0.98,
			padding : '8 0 0 0',
			collapsible : true,
			renderTo : Ext.g
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值