`
txf2004
  • 浏览: 7132804 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

extjs中model的HasMany和belongTo读取xml数据的用法

 
阅读更多

论坛上看到的提问,于是就研究了一下,终于得出store中list嵌套如何用HasMany和BelongTo实现。

先看界面源码

<html>
<head>

<!--Put your page Title here -->
<title> Cache Server Page </title>
<!--加载ExtJS -->
<linkrel="stylesheet"type="text/css"href="extjs/resources/css/ext-all.css"/>
<scriptsrc="extjs/resources/ext-all.js"></script>
<scriptsrc="extjs/resources/ext-lang-zh_CN.js"></script>
</head>

<body>
<scripttype="text/javascript">

Ext.onReady(function(){
Ext.QuickTips.init();
Ext.define('common.teacher',{
extend:'Ext.data.Model',
fields:['name'],
proxy: {
type: 'ajax',
url:'Test.TestApplication.TestOneToMany.cls',
reader: {
type: 'xml',
//root: 'teacherList'
record:'teacher'
}
},
hasMany:{model:'common.student', name:'students'}
});
Ext.define('common.student',{
extend:'Ext.data.Model',
proxy: {
type: 'ajax',
url:'Test.TestApplication.TestOneToMany.cls',
reader: {
type: 'xml',
root: 'students',
record:'name'
}
},
fields:[{name:'name',mapping:'/'}],
belongsTo:'common.teacher'
});

vartstore =Ext.create('Ext.data.Store', {
storeId:'simpsonsStore',
model:'common.teacher'
});
tstore.load({
callback:function(records){
console.log(records);
alert(records.length);
alert(records[0].students().count());
}
});
Ext.create('Ext.grid.Panel', {
title: 'Simpsons',
store:tstore,
title:'老师姓名',
columns: [
{ header: 'teName', dataIndex: 'name'},
{
xtype:'actioncolumn',
width:50,
items: [{
icon:'resources/images/confirm.png',
tooltip: '查看学生姓名',
handler: function(grid, rowIndex, colIndex) {
varrec =grid.getStore().getAt(rowIndex);
Ext.create('Ext.window.Window', {
title: "老师姓名:"+rec.get('name'),
height: 200,
width: 400,
layout: 'fit',
items: { // Let's put an empty grid in just to illustrate fit layout
xtype: 'grid',
border: false,
columns: [
{ header: '学生姓名', dataIndex: 'name',flex:1},

], // One header just for show. There's no data,
store: rec.students() // A dummy empty data store
}
}).show();
}
}
]
}
],
height: 200,
width: 400,
renderTo: Ext.getBody()
});



});
</script>
</body>
</html>
后台从文件读取xml文件的内容:

ClassTest.TestApplication.TestOneToManyExtends%CSP.Page
{

ClassMethodOnPage() As%Status
{
;Write "<?xml version=""1.0"" ?>",!
sfile=##class(%FileCharacterStream).%New()
sfile.Filename="C:/person.xml"
wfile.Read()
Quit$$$OK
}

ParameterCONTENTTYPE = "text/xml";

}

//注意:此后台代码为ensemble开发平台使用的M语言

加载过来的xml文件为:

<?xml version="1.0" encoding="UTF-8"?>
<teacherList>
<teacher>
<name>teacher1</name>
<students>
<name>student1_1</name>
<name>student1_2</name>
</students>
</teacher>
<teacher>
<name>teacher2</name>
<students>
<name>student2_1</name>
<name>student2_2</name>
</students>
</teacher>
</teacherList>

看效果图:

点击后显示该老师所带的学生:

分享到:
评论

相关推荐

    extjs4 对各类型store各种数据的读取 model 前台 等等

    根据提供的文件信息,本文将详细解析ExtJS 4中如何处理不同类型的Store及与之相关的数据操作、模型定义以及前端展示等内容。 ### ExtJS 4中的Store与数据管理 #### Store概念简介 在ExtJS 4中,Store是用于存储...

    extjs读取解析后端json格式数据显示条形图

    在本案例中,我们将深入探讨如何使用ExtJS读取并解析后端返回的JSON格式数据,然后将这些数据呈现为动态的条形图,以实现吸引用户注意力的视觉效果。 首先,JSON(JavaScript Object Notation)是一种轻量级的数据...

    extjs动态生成model、store、panel

    extjs动态生成model、store、panel;sql拼接等多种技术难点

    extjs中Ext.Panel和TreePanel 组件动态加载本地页面数据

    动态加载本地数据到`Ext.Panel`通常涉及到异步请求,使用`Ajax`或`Store`的`load`方法,通过URL获取JSON或XML格式的数据,并将其渲染到面板内。 例如: ```javascript var panel = Ext.create('Ext.Panel', { ...

    extjs的Word导出,excel读取和导出demo

    标题 "extjs的Word导出,excel读取和导出demo" 涉及到的是在Web应用程序中使用ExtJS框架进行数据导出至Word和Excel格式的技术实践。ExtJS是一个强大的JavaScript库,用于构建富客户端的Web应用,而Excel和Word导出则...

    extjs中文文档大全

    在使用过程中,要特别注意ExtJS的MVC(Model-View-Controller)架构,这是其设计的一大亮点。通过模型管理数据,视图展示数据,控制器协调两者,可以使代码结构清晰,易于维护。此外,利用Data Binding功能,可以...

    extjs和数据库的后台交互

    4. **Model和Store**:在ExtJS中,Model定义了数据的结构和行为,Store则负责管理一组Model实例,提供数据加载、排序、过滤等功能。开发者可以配置Store的proxy属性,指定与后台交互的方式,比如设置为`Ext.data....

    ExtJs中的Grid Title部分利用XML定义(ExtJS+Struts2)

    综上所述,利用XML定义ExtJs Grid Title部分并结合Struts2 Action获取数据是一种实用的方法,它提高了代码的可维护性和灵活性。在开发过程中,根据项目的具体需求,还可以进一步优化和扩展这个解决方案。

    Extjs之旅-combox之远程加载数据

    reader: { // 配置数据读取方式,通常为json或xml type: 'json' } }, autoLoad: false // 默认不自动加载数据,仅在需要时触发 }); ``` 2. **定义Model**:定义Combox要显示的数据结构,例如: ```javascript...

    extjs动态表格实例(封装GRID,从STRUTS2读取后台数据 )

    在动态表格中,这意味着表格的列和数据可以随着后台数据的变化而变化,提供灵活的数据展现方式。 封装Grid是为了提高代码的可重用性和可维护性。通过创建一个自定义的Grid组件,我们可以将通用的功能(如加载数据、...

    ExtJs3.3中文API.CHM_extjs3.3中文文档_

    这个“ExtJS3.3中文API.CHM”文档是为中文用户特别准备的,帮助他们更好地理解和使用ExtJS 3.3的各种功能。 CHM文件,全称是Microsoft Compiled HTML Help,是微软推出的一种帮助文件格式,它将HTML文件打包成单一...

    extjs4.2MVC去除Model层和Store层

    在EXTJS4.2的MVC架构中,Model层和Store层是两个核心组件,它们分别负责数据模型的定义和数据存储与管理。然而,在某些场景下,为了简化代码和提高可维护性,开发者可能会选择去除这两层的独立定义,转而采用工厂...

    extjs最简单的数据绑定和修改

    ExtJS 是一个强大的JavaScript 框架,主要用于构建富客户端应用程序。它的数据绑定功能是其核心...通过理解并熟练运用模型、存储、数据绑定和数据修改的机制,开发者可以轻松地构建出与后台数据紧密集成的前端界面。

    extjs表格(表格后台数据读,分页),树(后台数据读取,复选框联动)的基本操作示例

    总结,这个示例展示了如何使用ExtJS的GridPanel和TreePanel组件,结合后台数据读取,实现分页显示表格数据和树形结构数据,以及复选框的联动效果。在Visual Studio 2008环境中,开发者可以编写和调试这些功能,为...

    ExtJs XML 省市县级联

    解析XML文件通常需要使用ExtJs的`Ext.data.XmlReader`类,它能将XML数据转换为可以被ExtJs的数据模型(Model)和数据存储(Store)使用的格式。在项目中,可能有一个或多个Store分别对应省、市、县的数据,每个Store...

    SpringMVC+ExtJS完美集成(数据传输方式为JSON和model)

    SpringMVC和ExtJS是两种在Web开发中广泛使用的框架,SpringMVC是Spring框架的一部分,主要用于构建后端服务,而ExtJS则是一款强大的前端JavaScript库,用于创建用户界面。当这两个技术结合在一起时,可以实现高效的...

    extjs4中文视频下载地址

    - **Proxy 原理**:Proxy 在 ExtJS 4.0 中扮演着数据传输者的角色,负责数据的读取和存储。 - **代理类型**:包括内存代理(Memory)、AJAX 代理(Ajax)、REST 代理(Rest)等多种类型,每种代理适用于不同的场景。...

    经验总结-Extjs(一)数据交互设计

    8. **数据绑定**: ExtJS支持双向数据绑定,使得UI组件和数据模型保持一致,当数据发生变化时,界面会自动更新。 9. **分页和排序**: Store可以配置分页和排序,以处理大量数据并提供良好的用户体验。 10. **性能...

    Extjs复习笔记(十九)-- XML作为tree的数据源

    此外,对于更复杂的情况,如XML中包含嵌套节点或自定义属性,可以通过调整XMLReader的配置,比如使用`success`属性来定义成功解析的标记,使用`rootProperty`来指定XML文档的根属性,使用`idProperty`来指定唯一标识...

    extjs3.0中文API

    数据模型(Model)和数据存储(Store)是实现这一功能的关键部分。 4. **事件处理**:事件驱动编程是ExtJS的核心特性之一。通过监听和响应事件,可以实现组件间的交互。例如,一个按钮点击事件可能会触发数据的加载...

Global site tag (gtag.js) - Google Analytics