来自《sencha touch权威指南》第11章,323页开始

---------------------------------------------------

index.html代码:

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>sencha touch</title>
<link rel="stylesheet" type="text/css" href="css/sencha-touch.css" />
<script type="text/javascript" src="sencha-touch-debug.js"></script>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script>
<script type="text/javascript" src="app.js"></script>
<style type="text/css">
h3{background: blue;font-size: 14px;color:black;font-weight: bold;width:180px;border: solid 1px blue;background-color: skyblue;border-radius:20px;padding: 5px;}
.listHeader{display: -webkit-box;-webkit-box-orient: horicontal;}
.title{font-size: 14px;color: #FFF;text-align: center;background-color: #7088ab;width: 25%;}
.students div{width: 25%;text-align: center;border: solid 1px #ccc;float: left;}
.class{clear:left;}
</style>
</head>
<body> </body>
</html>

app.js代码:

Ext.require(['Ext.DataView','Ext.TitleBar','Ext.Toolbar','Ext.Panel']);
Ext.application({
name: 'MyApp',
icon: 'images/icon.png',
glossOnIcon: false,
phoneStartupScreen: 'images/phone_startup.png',
tabletStartupScreen: 'images/tablet_startup.png', launch: function(){
Ext.define('Class',{
extend: 'Ext.data.Model',
config: {
fields: ['id','name','studentCount'],
hasMany:{
model: 'Student',name: 'students'
},
proxy:{
type: 'ajax', url: 'students.json'
}
}
}); Ext.define('Student',{
extend: 'Ext.data.Model',
config: {
fields: ['number','name','age','phone']
}
}); var template = new Ext.XTemplate(
'<div class="class"><h3>{name}(学生人数:{studentCount})</h3>',
'<div class="listHeader">',
'<div class="title">姓名</div>',
'<div class="title">学号</div>',
'<div class="title">年龄</div>',
'<div class="title">电话</div>',
'</div>',
'<tpl for="students">',
'<div class="students">',
'<div id="name">{name}</div>',
'<div>{number}</div>',
'<div>{age}</div>',
'<div>{phone}</div>',
'</div></tpl></div>'
); var titlebar = Ext.create('Ext.TitleBar',{
docked: 'top',
title: '北京大学'
}); var dataview = Ext.create('Ext.DataView',{
items: titlebar,
itemTpl: template,
selectedCls: 'selected',
store: new Ext.data.Store({
model: 'Class',
autoLoad: true
})
}); Ext.Viewport.add(dataview);
}
});

students.json代码:

[
{
"id": 1,
"name": "2002级1班",
"studentCount":3,
"students":[
{"number":"0802123","name":"张三","age":30,"phone":"0102222"},
{"number":"0802124","name":"梁二","age":30,"phone":"0102233"},
{"number":"0802128","name":"陈八","age":30,"phone":"0102255"}
]
},
{
"id": 2,
"name": "2002级2班",
"studentCount":2,
"students":[
{"number":"0803111","name":"张三","age":20,"phone":"0202222"},
{"number":"0803222","name":"梁二","age":20,"phone":"0202233"}
]
}
]

显示结果:

Ext.data.association.hasMany一对多模型使用示例的更多相关文章

  1. ExtJS笔记 Ext.data.Model

    A Model represents some object that your application manages. For example, one might define a Model ...

  2. ExtJS笔记 Ext.data.Types

    This is a static class containing the system-supplied data types which may be given to a Field. Type ...

  3. 多目标跟踪笔记三:Global Data Association for Multi-Object Tracking Using Network Flows

    Abstract 针对用于多目标跟踪的数据关联(data association),本文提出了一种基于网络流(network flow)的优化方法.将最大后验概率(maximum-a-posterio ...

  4. A Hybrid Data Association Framework for Robust Online Multi-Object Tracking(2017 IEEE Transactions on Image Processing)

    A Hybrid Data Association Framework for Robust Online Multi-Object Tracking 一种用于鲁棒在线多目标跟踪的混合数据关联框架 摘 ...

  5. Ext.data.SimpleStore的使用方法

    Ext.data.SimpleStore简单数据存储器 参数:data:Array数组类型.fields:数组对应的字段名称.var data1=[1,"订单1","16 ...

  6. Ext.data.Store动态修改url

    store.proxy = new Ext.data.HttpProxy({url:path}); 示例: var ad_store = new Ext.data.JsonStore({ fields ...

  7. 设置 Ext.data.Store 传参的请求方式

    设置 Ext.data.Store 传参的请求方式 1.extjs 给怎么给panel设背景色 设置bodyStyle:'background:#ffc;padding:10px;', var res ...

  8. Ext.data.Store添加动态参数

    多条件查询页面的参数都是动态的,并且我们通常还会有默认加载页面.此时,动态添加参数非常重要,其中baseparam是解决问题的关键. @ 将查询条件定义为一个全局变量 var param_01 = & ...

  9. 转: Ext.data.Store 修改Post请求

    Extjs 4.0版本 var Store = Ext.create('Ext.data.Store', { pageSize: pageSize, model: 'Ext.data.Model名称' ...

随机推荐

  1. sqlplus连接的三种方式

    sys用户在cmd下以DBA身份登陆: sqlplus /nolog      --运行sqlplus命令,进入sqlplus环境.其中/nolog是不登陆到数据库服务器的意思,如果没有/nolog参 ...

  2. Hibernate学习11——Hibernate 高级配置(连接池、log4j)

    第一节:配置数据库连接池 这里配置c3p0连接池,需要的jar包: jar包位于hibernate压缩包的:hibernate-release-4.3.5.Final\lib\optional\c3p ...

  3. Java-Runoob-面向对象:Java 封装

    ylbtech-Java-Runoob-面向对象:Java 封装 1.返回顶部 1. Java 封装 在面向对象程式设计方法中,封装(英语:Encapsulation)是指一种将抽象性函式接口的实现细 ...

  4. python中包和模块的使用说明

    python中,每个py文件被称之为模块,每个具有__init__.py文件的目录被称为包.只要模块或者包所在的目录在sys.path中,就可以使用import 模块或import 包来使用. 如果想 ...

  5. Go - coding之前的准备

    Go tool 的使用 Go的tool要求我们对于code有一定的结构化组织和管理,下面我们就来一介绍他们: --GoPath environment variable:  顾名思义,环境变量,指定了 ...

  6. CentOS 7 需要安装的常用工具,及centos安装fcitx 搜狗输入法的坑旅

    https://blog.csdn.net/tham_/article/details/41868831 Centos常用设置 1.当最大化时隐藏标题栏 或者使用tweak tool 在字体中将标题栏 ...

  7. GridControl 添加全选列

    这里通过List对象绑定GridControl,且不用在GirdControl界面中添加任何列,实现CheckBox列的方法 1.列表中出现CheckBox列 非常简单,在绑定的List实体中,增加一 ...

  8. 第五章:Reminders实验:第一部分[Learn Android Studio 汉化教程]

    Learn Android Studio 汉化教程 By now you are familiar with the basics of creating a new project, program ...

  9. linux find中的-print0和xargs中-0的奥妙

    默认情况下, find 每输出一个文件名, 后面都会接着输出一个换行符 ('n'), 因此我们看到的 find 的输出都是一行一行的: 比如我想把所有的 .log 文件删掉, 可以这样配合 xargs ...

  10. sql developer Oracle 数据库 用户对象下表及表结构的导入导出

    Oracle数据库表数据及结构的导入导出   导出的主机与即将导入到的目标主机的tablespace 及用户名需一直!!!!!