首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何从ExtJS网格显示具有不同存储区的嵌套对象

ExtJS是一种用于构建富客户端Web应用程序的JavaScript框架。它提供了一套丰富的UI组件和工具,可以帮助开发者创建功能强大且可定制的用户界面。

在ExtJS中,要实现网格显示具有不同存储区的嵌套对象,可以按照以下步骤进行操作:

  1. 创建数据模型和存储区:
    • 首先,创建一个数据模型来定义嵌套对象的结构。数据模型描述了每个对象的属性和关联关系。
    • 接下来,根据数据模型创建多个存储区来存储不同的对象。
  • 创建网格组件:
    • 使用ExtJS提供的Grid组件来展示数据。
    • 通过配置Grid组件的列定义,可以指定要显示的数据属性以及使用的存储区。
  • 加载数据:
    • 使用存储区的加载方法从后端获取数据。可以通过配置存储区的代理来指定数据的获取方式(例如AJAX请求)。
    • 在数据加载完成后,存储区会自动将数据填充到相应的数据模型中。
  • 嵌套对象的展示:
    • 可以通过配置Grid组件的列来嵌套显示对象的属性。
    • 在列的定义中,使用renderer函数来定制每个单元格的显示内容。通过renderer函数,可以访问到嵌套对象的属性,并进行适当的格式化和展示。

示例代码:

代码语言:txt
复制
// 创建数据模型和存储区
Ext.define('ParentModel', {
  extend: 'Ext.data.Model',
  fields: ['id', 'name']
});

Ext.define('ChildModel', {
  extend: 'Ext.data.Model',
  fields: ['id', 'name'],
  belongsTo: 'ParentModel'
});

var parentStore = Ext.create('Ext.data.Store', {
  model: 'ParentModel',
  proxy: {
    type: 'ajax',
    url: 'data/parent.json',
    reader: {
      type: 'json'
    }
  }
});

var childStore = Ext.create('Ext.data.Store', {
  model: 'ChildModel',
  proxy: {
    type: 'ajax',
    url: 'data/child.json',
    reader: {
      type: 'json'
    }
  }
});

// 创建网格组件
var grid = Ext.create('Ext.grid.Panel', {
  store: parentStore,
  columns: [{
    text: 'Parent ID',
    dataIndex: 'id',
    width: 100
  }, {
    text: 'Parent Name',
    dataIndex: 'name',
    width: 200
  }, {
    text: 'Child Name',
    dataIndex: 'childName',
    width: 150,
    renderer: function(value, metaData, record) {
      var childRecord = record.getChildModel();
      return childRecord ? childRecord.get('name') : '';
    }
  }],
  height: 400,
  width: 600,
  renderTo: Ext.getBody()
});

// 加载数据
parentStore.load();
childStore.load();

在上述示例中,我们通过创建ParentModel和ChildModel来定义父对象和子对象的数据模型。然后,分别创建parentStore和childStore来存储父对象和子对象的数据。

在网格组件中,我们配置了三列:父对象的ID和名称列,以及子对象的名称列。在子对象名称列中,我们使用renderer函数来获取对应的子对象并显示其名称。

以上是一个简单的示例,通过上述步骤可以实现网格显示具有不同存储区的嵌套对象。在实际项目中,可能还需要根据具体需求进行进一步的定制和扩展。

腾讯云相关产品和产品介绍链接:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • NASA数据集——北美地区一个标准参考网格系统,覆盖整个研究区域,并延伸至北美东部

    北极-北方脆弱性实验(ABoVE)开发了两种标准化空间数据产品,以加快研究活动的协调,促进数据的互操作性。ABoVE 研究域包括美国阿拉斯加的北极和北方地区,以及北美加拿大的西部省份。在该域内指定了核心和扩展研究区域,并以矢量表示法(Shapefile)、栅格表示法(空间分辨率为 1,000 米的 GeoTIFF)和 NetCDF 文件的形式提供。已开发出一个标准参考网格系统,覆盖整个研究区域,并延伸至北美东部。该参考网格以嵌套多边形网格的形式提供,空间分辨率分别为 240 米、30 米和 5 米。5 米网格是第 2 版中新增的网格。请注意,所有 ABoVE 产品的指定标准投影是加拿大阿尔伯斯等面积投影。 该数据集包含五个数据文件:(1) 一个形状文件(压缩为 .zip),包含核心研究区和扩展研究区的矢量图;(2) 一个形状文件(压缩为 .zip),包含 240 米、30 米和 5 米空间分辨率的嵌套标准参考网格;(3) 以 .kmz 格式提供的网格数据;(4) 一个形状文件(压缩为 .zip),包含核心研究区和扩展研究区的矢量图。kmz 格式的网格数据;(4) 一个以 1,000 米像素分辨率表示核心研究区和扩展研究区的栅格的 GeoTIFF 文件;(5) 一个核心研究区和扩展研究区的 NetCDF 文件,供国际陆地模型基准 (ILAMB) 建模环境使用。

    00

    [翻译]Ext JS 教程-类系统 原

    类系统

    ExtJS 史上第一次进行了重整新的类系统的大重构。新的架构以ExtJS 4.X所编写的每一个类作为后盾,因此在你编写代码以前理解它是非常重要的。

    这个手册主要面向任何想在ExtJS 4.x中新建或者扩展类的开发人员。它分成四个部分:

    Ø 部分一:“综观”解释了稳定的类系统的需求

    Ø 部分二:“命名规则”讨论给类、方法、属性、变量和文件命名的最佳实践

    Ø 部分三:“动手实践”提供详细的一步步编码的例子

    Ø 部分四:“错误处理&调试”提供如何处理一场的小建议和小计谋

    一 综观

    ExtJS 4 靠超过300 多个类驱动。我们拥有一个超过20万来自世界各地,具备各种编程背景的开发人员组成的巨大社区。在一个框架的范围内,我们面对提供一个通用的编码结构的那些大挑战:

    Ø 简单易上手

    Ø 开发快速、调试简单、部署无忧

    Ø 结构良好,可扩展可维护

    JavaScript 是 classless 的面向原型的语言。天性使然,灵活是这个语言最强大的特性。使用不同的方式,不同的编码形式和技术,都可以让工作有效。然而就是那个特性,带来了不可预知的代价。没有一个统一的形式,JavaScript代码可能很难去理解、维护和重用。

    从另一方面来看,基于类的编程仍然是面向对象编程领域最受欢迎的模式。基于类的语言常常需要强类型,提供封装和标准的编码规范。一般而言要让开发人员遵守一大堆规则,而编码就会变得一直可预知、可扩展和规规矩矩。然而,他们不会有在JavaScript这样的语言中发现的同样的动态能力。

    每种方法都有其利弊,但是我们是否可以利用两者好处的同时避免他们的坏处呢?答案是肯定的,我们在ExtJS 4中实现了这个解决方案。

    二 命名规范

    至始至终为你编码的类、命名空间和文件名使用一致的命名规则有助于保持你代码的组织性、结构性和可读性。

    1)类

    类名应该只包含字母和数字字符。数字在大多数情况下是不鼓励使用的,除非他们属于一种技术手段。不要使用下划线,连字符或者其它任何非字母非数字的字符。举个例子:

    Ø MyCompany.useful_util.Debug_Toolbar 不鼓励这样命名

    Ø MyCompany.util.Base64 是可以被接受的

    类名应该被组成成为包,在包中合适恰当的使用对象属性点记号(.)分出命名空间。至少,应该只有唯一的顶层命名空间后面跟类名。举个例子:

    MyCompany.data.CoolProxy

    MyCompany.Application

    顶层命名空间和真实类的命名应该采用Camel形式(单词的首字母都大写),其它所有事物都应该是小写的。举个例子:

    MyCompany.form.action.AutoLoad

    不是Sencha发行的类永远不应该使用Ext作为顶层命名空间的名字。

    首字母缩略词也应该遵守上面列出的Camel形似命名规则。示例如下:

    Ext.data.JsonProxy 而不是Ext.data.JSONProxy

    MyCompany.util.HtmlParser 而不是 MyCompary.parser.HTMLParser

    MyCompany.server.Http 而不是MyCompany.server.HTTP

    2)源代码

    类地址的名字应该直接指向文件被存储的路径。基于此,每个文件中只能有一个类,示例如下:

    Ext.util.Observable 被存储在路径 /to/src/Ext/util/Observable.js 中

    Ext.form.action.Submit 被存储在路径 /to/src/Ext/form/action/Submit.js中

    MyCompany.chart.axis.Numeric 被存储在路径 /to/src/MyCompany/chart/axis/Numeric.js中

    Path/to/src 是你的应用程序类所在的路径。所有的类都应该在这个公共的根下面,并且为了获得最好的开发、维护和部署体验,适当的赋予命名空间。

    2)方法和变量

    跟类名类似,方法和变量的名字应该只包含数字和字母字符。数字被允许的,但在大多数情况下是不被鼓励的

    02

    初识Ext.NET

    以前从没想过会用到ExtJS,总是对它有着一种反感:认为脚本资源大,执行脚本多,性能差等等。最近因为一个项目使用到了,就用上了。相对JQuery,ExtJS没有那么方便灵活,但是其界面美观,功能实用,可以节约不少开发时间。玩ExtJS,就感觉是在玩配置,也许Java程序员会习惯些。熟悉那些配置无疑也是一件麻烦而且棘手的事情,稍不留心,就得为自己的失误埋单。虽然网上有些设计器,但是大都满足不了需求。后来,在网上找到一款还不错的框架——Ext.NET。这对于.NET开发人员来说,能节省不少时间。至少带智能提示的xml配置怎么也要比写js要顺手方便多了。而且其还是免费开源的。不过在使用过程中,也没有那么顺畅。

    06

    [翻译]Ext JS 教程-开始使用 ExtJS 4

    入门

    1. 需求

    1.1 网页浏览器

    ExtJS 4 支持所有主流的浏览器,从IE 6 到最新的谷歌Chrome。在开发期间,我们建议你使用下面这些浏览器,以获得更好的调试体验。

    Ø Google Chrome 10+

    Ø Apple Safari 5+

    Ø Mozilla Firefox 4+ 带Firebug Web 开发插件

    本教程假设你正在使用最新的谷歌 Chrome 浏览器。如果你还没有 Chrome,花点时间去下载它吧,然后去熟悉熟悉 Chrome 的开发者工具。

    1.2 Web 服务器

    尽管使用 ExtJS 4 并不一定需要一个本地的web 服务器,仍然强烈建议你在开发的时候能有一个,因为 XHR 在大多数浏览器上有针对本地 file:// 的cross origin 限制。如果你还没有本地的web 服务器,建议你下载并安装 Apache HTTP Server。

    Ø 了解在 Windows 上面安装 Apache

    Ø 了解在 Linux 上面安装 Apache

    Ø Mac OS X 已经内置了apache,你可以在 System Preference > Sharing 下面的 Web Sharing 旁找到

    一旦你安装好了 Apache ,你可以通过在浏览器地址栏输入 localhost 验证它是否在运行。你会看到一个表示 Apache HTTP 服务器已经成功安装并且正常运行的开始页面。

    1.3 Ext JS 4 SDK

    下载 Ext JS 4 SDK,把压缩包解压到一个在你的web 根路径下新建的extjs文件夹。如果你不知道web根目录在哪儿,查阅你web服务器的相关文档。Web 根路径的位置根据你操作系统的不同而有所不同,但是如果你使用的是 Apache,你一般会在:

    Ø Windows - "C:\Program Files\Apache Software Foundation\Apache2.2\htdocs"

    Ø Linux - "/var/www/"

    Ø Mac OS X - "/Library/WebServer/Documents/"

    一旦你已经完成安装,将浏览器导航至 http://localhost/extjs/index.html 。如果一个 ExtJS 4 的欢迎页面出现了,代表你已经一切就绪了。

    2. 应用程序结构

    2.1 基本结构

    如下所列的建议尽管不是强制的,但是可以作为最佳实践指南考虑,以保持你的应用的结构条理性、可扩展性和可维护性。下面是推荐的Ext JS 应用程序结构:

    - appname

    - app

        - namespace

            - Class1.js

            - Class2.js

            - ...

    - extjs

    - resources

        - css

        - images

        - ...

    - app.js

    04

    毕业设计专用 完全开源 基于Java的房屋租赁管理系统

    本项目为基于Java的出租房屋管理系统V1.0,采用区域网格化节点管理模式,完成流动人口的基础数据采集。在此基础上,通过后台数据的分类管理和分析,可视化展示区域流动人口数据的统计特性和关联分析结果,为各级管理部门提供可视化的结果分析,最终为区域流动人口疫情防控提供决策支持。 流动人口的防疫是当前区域人口管理的重要任务。当前流动人口统计不能满足公共卫生管理、提高新冠肺炎防疫质量和水平的需要。现有的区域流动人口数据库已经遇到瓶颈,存在有效数据采集难、数据缺乏有效验证机制的和关联分析不足等问题。因此,需要通过大数据存储、计算、分析、挖掘等技术,建立一套流动人口数据采集和分析平台。 本项目研究的防疫区域人口数据分析平台旨在运用大数据技术,实现各类基础数据、管理数据、运营数据的集中定义、集中存贮和集中使用。功能上包括,运用大数据技术,实现各类数据按照收集、准备、建模、结果、展现、归档的增值过程分级进行存储,以及实现以上功能所需的管理应用环境和技术支撑框架。平台主要为上层应用系统提供全局统一的数据综合利用及管理环境,为各类具体应用(应用子系统或子模块)提供统一的数据存储、加载、查询、分析以及展现的平台框架

    02
    领券