ExtJs 实现动态加载grid完整示例

下面是ExtJs实现动态加载grid完整示例的攻略:

概述

在实际开发中,有时候需要动态加载grid数据,在数据量较大的情况下,提高页面加载速度,减少用户等待时间,这就需要使用ExtJs实现动态加载grid数据。ExtJs中实现动态加载grid数据的方式有两种,一种是使用分页加载数据,另一种是使用滚动加载数据,下面我们将详细介绍这两种方式以及示例。

分页加载数据

分页加载数据是指在grid表格中分页加载数据,可以提高页面加载速度,同时减少数据传输量,对于数据量较大的情况下尤为适用。下面是一个分页加载数据的示例代码:

Ext.define('App.view.UserList', {
    extend: 'Ext.grid.Panel',

    requires: [
        'App.store.Users',
        'Ext.toolbar.Paging'
    ],

    alias: 'widget.userlist',

    store: 'Users',
    columnLines: true,

    initComponent: function () {
        var me = this;

        Ext.applyIf(me, {
            dockedItems: [
                {
                    xtype: 'pagingtoolbar',
                    dock: 'bottom',
                    displayInfo: true,
                    store: me.store
                }
            ],
            columns: [
                {
                    xtype: 'gridcolumn',
                    dataIndex: 'id',
                    text: 'ID',
                    hidden: true,
                    flex: 1
                },
                {
                    xtype: 'gridcolumn',
                    dataIndex: 'name',
                    text: 'Name',
                    flex: 1
                },
                {
                    xtype: 'gridcolumn',
                    dataIndex: 'email',
                    text: 'Email',
                    flex: 1
                },
                {
                    xtype: 'gridcolumn',
                    dataIndex: 'phone',
                    text: 'Phone',
                    flex: 1
                }
            ]
        });

        me.callParent(arguments);
    }
});

滚动加载数据

滚动加载数据是指在grid表格中滚动浏览器滚动条时,动态加载数据,这种方式可以实现无缝加载数据,对于数据量较小的情况下尤为适用。下面是一个滚动加载数据的示例代码:

Ext.define('App.view.UserList', {
    extend: 'Ext.grid.Panel',

    requires: [
        'App.store.Users'
    ],

    alias: 'widget.userlist',

    store: 'Users',
    columnLines: true,
    loadMask: true,
    scroll: 'vertical',

    initComponent: function () {
        var me = this;

        Ext.applyIf(me, {
            columns: [
                {
                    xtype: 'gridcolumn',
                    dataIndex: 'id',
                    text: 'ID',
                    hidden: true,
                    flex: 1
                },
                {
                    xtype: 'gridcolumn',
                    dataIndex: 'name',
                    text: 'Name',
                    flex: 1
                },
                {
                    xtype: 'gridcolumn',
                    dataIndex: 'email',
                    text: 'Email',
                    flex: 1
                },
                {
                    xtype: 'gridcolumn',
                    dataIndex: 'phone',
                    text: 'Phone',
                    flex: 1
                }
            ]
        });

        me.store.addListener('load', function (store, records, successful, operation) {
            if (successful && records.length > 0) {
                var lastRecord = records[records.length - 1];
                var lastId = lastRecord.data.id;
                var newRecords = [];
                for (var i = lastId + 1; i <= lastId + 10; i++) {
                    newRecords.push({
                        id: i,
                        name: 'name' + i,
                        email: 'email' + i + '@example.com',
                        phone: '1234567890'
                    });
                }
                store.add(newRecords);
            }
        });

        me.callParent(arguments);
    }
});

在这个示例中,我们监听了store的load事件,在load完成后,判断是否加载成功并且有记录,如果满足条件,则根据最后一条记录的id,动态生成10条记录,并添加到store中。

以上是两个ExtJs实现动态加载grid数据的示例代码,具体可以根据实际情况进行选择,如果数据量较大,建议使用分页加载数据,如果数据量较小,可以使用滚动加载数据。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:ExtJs 实现动态加载grid完整示例 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • Java如何从json字符串中获取某个值详解

    下面是“Java如何从json字符串中获取某个值”的完整攻略: 1. 导入相关包和类库 在Java中,我们可以使用相关的包和类库来操作JSON格式的数据。常用的JSON处理库有: Gson Jackson FastJson 具体使用哪个库可以根据自己的需要和喜好选择。这里以Jackson为例,需要导入以下依赖: <dependency> <…

    Java 2023年5月26日
    00
  • kotlin中数据类重写setter getter的正确方法

    当我们创建一个Kotlin数据类时,它会自动为每一个属性创建默认的 getter 和 setter 方法。但是如果我们需要对某个属性重写 getter 或 setter 方法,我们该怎么做呢? 首先,我们需要在数据类中定义属性并为其提供一个初始值。然后我们需要为该属性定义一个自定义的 setter 或 getter 方法。 下面是一些示例代码,可帮助您理解如…

    Java 2023年5月23日
    00
  • SpringBoot项目创建使用+配置文件+日志文件详解

    Spring Boot项目创建使用+配置文件+日志文件详解 Spring Boot是一个非常流行的Java框架,它提供了许多自动配置功能,使得开发人员可以更快速地构建应用程序。在本文中,我们将深入探讨Spring Boot项目的创建、使用、配置文件和日志文件的详解。 Spring Boot项目创建 Spring Boot项目的创建非常简单,可以通过以下步骤完…

    Java 2023年5月15日
    00
  • ajax 动态传递jsp等页面使用id辨识传递对象

    使用Ajax技术动态传递JSP等页面使用ID辨识传递对象的过程可以分为以下几个步骤: 创建XMLHttpRequest对象 XMLHttpRequest对象是用于在后台与服务器交换数据的核心对象。在使用Ajax技术时,首先需要创建一个XMLHttpRequest对象,代码如下: var xmlhttp; if (window.XMLHttpRequest) …

    Java 2023年6月15日
    00
  • Java欧拉函数的计算代码详解

    首先介绍下欧拉函数的定义: 欧拉函数,又称为“φ函数”,表示小于等于n的正整数中有多少个与n互质。记做φ(n)。 Java中计算欧拉函数的代码如下(假设要计算的数为n): public static int eulerFunction(int n) { int res = n; for (int i = 2; i * i <= n; i++) { if…

    Java 2023年5月26日
    00
  • javaWeb实现简单文件上传

    下面是“javaWeb实现简单文件上传”的完整攻略。 一、准备工作 在开始之前,需要准备以下工作: 一个支持Servlet、JavaServer Pages(JSP)的JavaWeb环境,如Tomcat、Jetty等。 一个用于上传文件的HTML表单。 编写Java Servlet程序来处理上传文件,并保存在服务器上。 二、HTML表单 HTML表单必须包含…

    Java 2023年5月20日
    00
  • docker(一):Develop faster. Run anywhere.

    前言 在进行微服务部署时,首先需要进行部署环境的搭建。目前,Docker 已经成为了微服务部署的主流解决方案之一。Docker 可以帮助我们更快地打包、测试以及部署应用程序,从而缩短从编写到部署运行代码的周期。 在本文中,我们将对 Docker 进行初步的讲解,并介绍如何将映像生成并作为容器运行、使用 Docker Hub 共享映像。具体的功能点如下: 将映…

    Java 2023年5月11日
    00
  • 如何提高java代码的重用性

    当我们在编写Java代码时,通常需要考虑代码的可读性和可维护性,但同时也需要考虑代码的重用性,以避免编写冗余、重复的代码。下面是几个可以提高Java代码的重用性的技巧和建议: 1. 使用面向对象设计 Java是面向对象的编程语言,因此可以使用面向对象的设计模式来提高代码的重用性。通过设计好合适抽象类和接口,使得代码可以被继承或者实现,以实现代码的可复用性。例…

    Java 2023年5月30日
    00
合作推广
合作推广
分享本页
返回顶部