Ext JS Grid数据分页加载

    Ext JS的Grid通过PagingToolbar和datastore的配合完成对于列表显示的的控制,下面的例子中是实验的JavaScript代码:


Ext.onReady(function() {
	Ext.state.Manager.setProvider(new Ext.state.CookieProvider());

	var store = new Ext.data.JsonStore({
				autoLoad : {
					params : {
						start : 0,
						limit : 4
					}
				},
				root : 'jsonObject',
				totalProperty : 'totalCount',
				idProperty : 'id',
				remoteSort : true,
				fields : ['id', 'text', 'cls'],
				url : 'gridAction.action'
			});
	// store.load();

	var jsongrid = new Ext.grid.GridPanel({
				store : store,
				columns : [{
							id : 'id',
							header : 'id',
							width : 160,
							sortable : true,
							dataIndex : 'id'
						}, {
							header : 'text',
							width : 75,
							sortable : true,
							dataIndex : 'text'
						}],
				listeners : {
					'headerclick' : function(thisgrid, conlumeIndex) {
						var o = {};
						o['conlumeHeader'] = thisgrid.getColumnModel().getColumnHeader(conlumeIndex);
						this.store.baseParams = o;
					}
				},
				stripeRows : true,
				height : 500,
				width : 600,
				title : 'Json Grid',
				// config options for stateful behavior
				stateful : true,
				renderTo : 'griddiv',
				stateId : 'jsongrid',
				bbar : new Ext.PagingToolbar({
							store : store, // grid and PagingToolbar
							// using
							// same store
							displayInfo : true,
							pageSize : 4,
							prependButtons : true,
							items : ['页数'],
							doLoad : function(start) {
								record_start = start;
								var o = {};
								pn = this.getParams();
								o[pn.start] = start;
								o[pn.limit] = this.pageSize;
								this.store.load({
											params : o
										});
							}
						})
			});
});

 

后端和这个JavaScript配合的Action为:

package com.struts2.action;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import net.sf.json.JSONArray;

public class GridAction  {

	   private List<Menu> menus;
	    JSONArray jsonObject;
	    private Integer totalCount;
	    private Integer start = 0;
	    private Integer limit = 4;
	    private String conlumeHeader;

	    public String execute() {


	        menus = new ArrayList<Menu>();

	        Menu benz = new Menu();
	        benz.setText("Benz");
	        benz.setCls("folder");
	        benz.setLeaf(false);
	        benz.setId(10);
	        benz.setDate(new Date());
	        menus.add(benz);


	        Menu menu;
	        menu = new Menu();
	        menu.setText("S600");
	        menu.setCls("file");
	        menu.setLeaf(true);
	        menu.setId(11);
	        menus.add(menu);

	        menu = new Menu();
	        menu.setText("SLK200");
	        menu.setCls("file");
	        menu.setLeaf(true);
	        menu.setId(12);
	        menus.add(menu);

	        Menu bmw = new Menu();
	        bmw.setText("BMW");
	        bmw.setCls("folder");
	        bmw.setLeaf(false);
	        bmw.setId(20);
	        menus.add(bmw);


	        menu = new Menu();
	        menu.setText("325i");
	        menu.setCls("file");
	        menu.setLeaf(true);
	        menu.setId(21);
	        menus.add(menu);

	        menu = new Menu();
	        menu.setText("X5");
	        menu.setCls("file");
	        menu.setLeaf(true);
	        menu.setId(22);
	        menus.add(menu);

	        this.totalCount = menus.size();
	        Integer end = this.start+this.limit;

	        if(this.start+this.limit > this.totalCount)
	        {
	        	end = this.totalCount;
	        }

	        jsonObject = JSONArray.fromObject(menus.subList(this.start, end));
	        try {
	            jsonObject.toString();
	        } catch (Exception e) {
	        }



	        return "success";
	    }

		public JSONArray getJsonObject() {
			return jsonObject;
		}

		public void setJsonObject(JSONArray jsonObject) {
			this.jsonObject = jsonObject;
		}

		public Integer getTotalCount() {
			return totalCount;
		}

		public void setTotalCount(Integer totalCount) {
			this.totalCount = totalCount;
		}

		public Integer getStart() {
			return start;
		}

		public void setStart(Integer start) {
			this.start = start;
		}

		public Integer getLimit() {
			return limit;
		}

		public void setLimit(Integer limit) {
			this.limit = limit;
		}

		public String getConlumeHeader() {
			return conlumeHeader;
		}

		public void setConlumeHeader(String conlumeHeader) {
			this.conlumeHeader = conlumeHeader;
		}

}

 action的发布,通过在struts.xml中配置返回为json的数据类型:

	<package name="jsonstore" extends="json-default" >
		<action name="gridAction" class="com.struts2.action.GridAction">
			<result name="success" type="json">
				<param name="excludeNullProperties">true</param>
				<param name="noCache">true</param>
			</result>
		</action>
	</package>

 

OCV/AOCV/SOCV的介绍和应用 library中的cell delay是在某个固定的PVT(operating condition)下仿真得出的。,cell的delay并不是一个固定值,而是一个随机值,遵循高斯分布或门特卡洛分布,在STA中用OCV来模拟这一『特征』。OCV全称on chip variation,用于描述不同管子间由于工艺偏差、电压降、温度变化引起的delay变化。,也用于描述工艺偏差引起的net厚度宽度的变化从而导致net的电容电阻变化。优点:设置起来比较简单粗暴,对于不那么先进的工艺可行!的影响,更贴合实际。 阅读详情

相关推荐

LeRobot SO100仿真操控避坑指南:从MuJoCo模型调试到实机同步(附参数修正模板)

本文详细解析了LeRobot SO100机械臂在MuJoCo仿真操控中的常见问题与解决方案,包括关节转向符号调试、偏移值校准及实机同步技术。通过实战案例和参数修正模板,帮助开发者高效解决仿真与实机差异,提升机器人开发效率。

weixin_29064009的博客 246

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

原文链接:http://www.jb51.net/article/41607.htm

Leo's Blog 1952

微信聊天记录丢失原因与恢复方案详解

SQLite数据库作为移动应用常见的本地存储方案,其加密机制和存储结构直接影响数据安全性。以微信为例,聊天记录存储在EnMicroMsg.db等SQLite文件中,采用AES加密保护。当手机清理工具误删这些文件时,会导致特定时间段记录丢失。理解数据恢复原理需要掌握文件系统删除机制和闪存特性,其中关键点包括TRIM指令的影响和数据块覆盖风险。通过专业工具如DiskDigger或iMyFone D-Back,配合ADB调试和SQLite数据重组技术,可在黄金时间窗口内恢复记录。日常维护建议结合自动化备份方案和存

weixin_32612263的博客 386

extjs 表格数据重新加载_Extjs动态加载grid表格

通常情况下,我们编写Extjs表格grid的时候,都是静态的,也就是说grid的表头、列都是固定的。在实际开发中,往往面对很多“非主流”的情况,就比如我曾经遇到的一个实际开发的案例,要求前台以Extjs Grid来显示数据库的表并进行编辑操作。数据库中有很多表,由于每张数据库表的字段数目是不同的,所以需要事先通过后台进行数据库表的字段计算,然后输出到前台给以显示。还好这不是什么难事,因为Extjs...

weixin_42512913的博客 934

逆向CarPlay协议时,除了USB主从切换,你还需要注意这3个关键点

本文深入探讨逆向CarPlay协议时的3个关键点,包括MFi协议背景、多通道协同工作机制和协议分析工具的高级过滤技巧。特别解析了USB主从切换后的复杂交互过程,帮助安全研究员和逆向工程师更好地理解CarPlay协议的核心机制与潜在安全研究切入点。

weixin_29164497的博客 381

YOLO26 改进 | 基于特征蒸馏 | 知识蒸馏 (Response & Feature-based Distillation)

本文系统介绍了YOLO26中的知识蒸馏技术,包含五大核心方法:基于响应的蒸馏(学习分类概率)、基于特征的蒸馏(学习中间层表示)、基于关系的蒸馏(学习特征关联)、通道维度蒸馏(CWD)和前景背景分离蒸馏(FGD)。文章深入解析了每种方法的数学原理与实现细节,并提出动态训练策略,包括一致性匹配和蒸馏权重退火机制。通过教师模型向学生模型传递"暗知识",在保持模型轻量化的同时逼近大模型性能。配套代码支持模块化组合不同蒸馏方法,为YOLO26模型压缩提供了一套完整的解决方案。

weixin_51988935的博客 271

extjs中grid数据重新加载

Grid数据刷新a、直接刷新,获取grid的store后,调用store的reload()方法;b、修改Grid数据来源,修改列表(grid)里store的加载url:grid.getStore().proxy.conn.url=url;grid.getStore().reload(); 转载于:https://www.cnbl...

weixin_30325793的博客 761

DAB协议解读ETSI TS 103 461

数字信号广播( Digital Audio Broadcasting 简称DAB)是继AM、FM传统模拟广播之后的第三代广播--数字信号广播,它提供了接近CD质量的声音,广播及商机无限的附加数据服务,具有抗噪声、抗干扰、抗电波传播衰落、适合高速移动接收等优点,保证固定、携带及移动时接收信号的质量。DAB的原始版本使用MP2音频编解码器。该系统的升级版本于2007年2月发布,称为DAB+,它使用基于改进的离散余弦变换(MDCT)的HE-AACv2(AAC+)音频编解码器。

qflook的博客 4477

Extjs4.2 表格动态数据加载,以及动态选择分页条目,前后台详解

刚自学extjs,搞到分页后碰到了许多问题,特记录下,方便你我他 一、grid_gridpanel_paging.jsp页面引入: 二、编写前端grid_gridpanel_pagings.js代码: Ext.onReady(function() {     var pageSize = 8;//设置每页显示的条数     /

大海中的一叶孤舟 2304

【现代人形机器人:从物理建模到大模型驱动的控制与学习】第1章 机器人建模回顾

本章建立读者进行后续控制 / 优化 / 学习工作的数学与计算基础。内容分为三大块:刚体运动学:位姿表示、坐标变换、旋转参数与李代数/李群(指数映射、twist)多关节机构的正/逆运动学:DH 与 POE 两种建模、雅可比矩阵推导、数值/解析逆解方法与奇异性问题约束动力学:拉格朗日公式、牛顿—欧拉递归算法、接触/冲击模型、受约束系统的方程(拉格朗日乘子与互补性条件)每一节同时给出与练习题。假设读者已具备线性代数(矩阵、特征分解、SVD)、多变量微积分与基础力学(牛顿第二定律)知识。

u012133341的博客 184

【Android面试八股文】Android Application为什么是单例?

这道题相对简单,就是考察大家是否了解application的创建流程。的实例,它用来存储和处理整个全局变量的一些事情,它同时还是一个。为空的时候,才会创建,从而保证了它是一个单例对象。一样有自己的生命周期,但是它并没有那么复杂,因为。对象的创建过程,找出它为什么是单例的原因。全局进行一些配置,比如配置插件。的时候才会创建,所以说可以在。凭什么是单例,我们查看下。启动的时候都会创建一个。是怎么一步步创建的。是一个单例,即每一个。

字节卷动 531

ExtJS中的Grid分页

1.建立页面: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gbk"> <title>03.grid</title> //引入必要文件 <link rel="stylesheet" ...

weixin_30478619的博客 144

实用指南:制作通用的INCA和CANape兼容A2L文件

A2L(ASAM MCD-2 Measurement and Calibration Data)文件是描述ECU(电子控制单元)测量和校准数据的标准文件格式。在标定工作中,A2L文件扮演着极为重要的角色,它定义了测量通道、校准参数等关键信息,为工程师提供了统一的描述方式。INCA和CANape是两种常见的汽车电子系统标定工具,分别由ETAS和Vector公司开发。它们在汽车电子系统的开发和调试过程中发挥着重要作用,提供了丰富的标定功能和用户友好的界面。

一直在水些技术小文 2922

EXT Grid表格分页

EXT 表格Grid采用JSON取数据,分页操作在后台操作。  数据源如下: var jsonData = new Ext.data.JsonStore({ url : [localhost:8080, /Grazioso_Control_Chinese.jsp?Page=pushServiceInfoQuery&,(new Date().getTime

kason的专栏 1747

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Ext.grid.Panel表格分页

Ext.grid.Panel表格分页示例 代码: cshtml @{ Layout = null; } &lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;Ext.grid.Panel动态加载分页数据&lt;/title&gt; &lt;link href="@Url.Conten...

weixin_34314962的博客 474

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

EXT中的GRID分页示例

 EXT中的GRID分页示例2008-12-15 10:21Ext.onReady(function(){                                                                    var store = new Ext.data.JsonStore({                           

刘阿飞的专栏 858

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

asp.net 下 ext填充grid代码 .

print? /**  * @author fox  */  Ext.onReady(function() {      Ext.BLANK_IMAGE_URL = 'extjs/resources/images/default/s.gif';      Ext.QuickTips.init();      //var sm = new Ext.grid.CheckboxSelectionM

GoodShot的专栏 1335

一步一步使用Ext JS MVC与Asp.Net MVC 3开发简单的CMS后台管理系统之用户管理(2)...

现在,创建视图,在Scripts\app\view目录下先创建目录Users,然后在该目录下创建View.js。要使用Grid显示用户信 息,因而要从Grid面板派生出视图。定义的时候要注意视图的类名。还有就是一定要定义别名,因为在控制器中是使用widget方法创建的视图实例。如果 不想定义别名,那就要修改创建实例的方式。具体的基本定义代码如下: Ext.define('SimpleCMS....

weixin_33995481的博客 81

Ext.js 数据驱动应用设计指南(二)

到目前为止,我们创建了数据结构、应用程序架构,并实现了数据发送和接收方法。但当前我们只能在一个网格中看到数据。想象一下,一个公司的经理想要将这类数据以图表的形式展示在报告或演示文稿中,这并不困难。因此,在下一章中,我们将学习如何设计各种类型的可视化图表。您必须同意这已经开始看起来像一个应用程序了!仪表板是您登录后看到的第一个屏幕。图表在视觉上检查大量复杂的数据时非常有效。如果您觉得需要,随时添加面板,这将增加其实用性。这个示例将成为您在未来的项目中可定制的基线。

龙哥盟 772

Extjs学习 Grid实例

首先,一个表格应该有列定义,即定义表头ColumnModel: // 定义一个ColumnModel,表头中有四列 var cm = new Ext.grid.ColumnModel([      {header:'编号',dataIndex:'id'},      {header:'性别',dataIndex:'sex'},      {header:'名称',dataIndex:'n

jazywoo_在路上 624

ext4

list users page Ext.Loader.setConfig({enabled: true}); Ext.Loader.setPath('Ext.ux', 'ext4/examples/ux/'); Ext.require([ 'Ext.da...

mickey 238

如何创建GridPanel

一、定义数据源 var reader=new Ext.data.ArrayReader(); var data= var ds=new Ext.data.Store({reader:reader,data:data}); 二、定义columnModel var cm=new Ext.Grid.ColumnModel(); [color=darkred]dataIndex[/color]...

yechuxin_2009的专栏 157

Extjs中grid前端分页使用PagingMemoryProxy【二】

在项目中遇到Grid前端分页,本人也是刚接触extjs没多久,为了实现效果,一直找了很久才实现出来,对于代码中的一些也不能详细的说明出来, 不知道能不能帮助到遇到同样问题的朋友,所以将例子代码贴出来大家一起相互学习下。   在项目中时常会用到前端分页的效果,使用grid来进行分页, 在源代码中\examples\ux\data\PagingMemoryProxy.js,此时要使用该js文件

逐梦小涛 281

用Ext-4.2简单实现分页效果

用Ext-4.2简单实现分页效果

starjuly的专栏 2873
上一篇: extjs 异步加载树的构建
下一篇: 利用ExtJS构建一个应用系统(一)
tkxing
博客等级 码龄19年 1粉丝 57原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值