ext分页

开始的时候只是听说过ext,也不知道他是个怎样的东东.
现在用了,发现在这玩意确实很强大.在项目中用他做了个分页,挺好用.
帖出来代码共享一下.
1.页面要用到ext框架,必须先导入两个js文件和它自带的样式文件:
 <link rel="stylesheet" type="text/css" href="ext/resources/css/ext-all.css" />
<script type="text/javascript" src="ext/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="ext/ext-all.js"></script>
有了这三个以后就可以直接用了.
我用的是sqlserver数据库,分页可能和别的数据库的分页有差别.
先说说页面部分的.
2. Ext.onReady(function(){}这样就相当于在页面上写了个段javascript然后在<body>中onload调用的一样.
首先要得到一个JsonStore对象:
var store=new Ext.data.JsonStore({
url:"managerSystemUser.do",
root:"data",
fields:["userId","userName","userPhone","userMail","mobilePhone","userAddress"],
totalProperty:"totalProperty"
});
这里的参数url设置的就是你查询数据的action,root是和totalProperty这两个参数都是和action里的参数对应的,action里写的是什么这里就必须是.还有一个参数就是fields了,这个地方的参数都是和action里输出的那些参数对应的.
3.然后就是在页面上设置列了,得要一个ColumnModel对象.
var cm=new Ext.grid.ColumnModel([check,{
header:"用户ID",
dataIndex:"userId",
sortable: true,
type:"int"
},{
header:"用户名",
dataIndex:"userName",
sortable: true
},{
header:"用户电话",
dataIndex:"userPhone"
},{
header:"用户邮箱",
dataIndex:"userMail",
width:150
},{
header:"用户手机",
dataIndex:"mobilePhone",
width:150
},{
header:"用户地址",
dataIndex:"userAddress",
width:200
}]);
这里的参数header是设置列显示的是什么,如果不设置默认的就是和dataIndex一样的,这里的dataIndex是和上边步骤2中的fields中的参数是相对应的,sortable是来设置是否可以在页面上排序功能,哪个里设置了true哪个就可以排序,type是来说明这一列是整数,要按整数的方法排序,如果不设置这个的话,他默认的会用字符串方式排序.
4.用了列以后就得有个地方来显示了,当然就少了不GridPanel.
var grid=new Ext.grid.GridPanel({
title:":::管理员信息维护:::",
cm:cm,
sm:check,
store:store,
autoWidth:true,
height:400,
bbar:bbar
});
这里的title网格标题显示的内容,cm参数就是设置ColumnModel对象.sm那里是我加了个复选框,
var check=new Ext.grid.CheckboxSelectionModel({singleSelect :true});
这样就得到复选框了,设置的singleSelect:true表示只能让其每次选择一个,不让多选.还有上边的第三步里
([check,{
header:"用户ID",
dataIndex:"userId",
sortable: true,
type:"int"
这里也有个复选框.这就是说者一列的前边都会加上一个复选框.
现在就继续说GridPanel里参数,store设置的就是第二步里得到的那个store,autoWidth:true就是设置他的宽度为自动扩展,height:400设置的是他的高为400px,bbar设置的是分页工具栏.
var bbar=new Ext.PagingToolbar({
pageSize:15,
store:store,
beforePageText:"当前第",
afterPageText:"页,共{0}页",
lastText:"尾页",
nextText :"下一页",
prevText :"上一页",
firstText :"首页",
refreshText:"刷新页面",
displayInfo: true,
displayMsg:"当前显示 {0} - {1}条, 共 {2}
});
这段代码就是分页工具栏,pageSize设置的页面显示多少页,store设置的数据从哪来.下边的都有中文就不一一解释了.
4.现在数据也有了,网格也有了,分页工具栏也有了,列也有了,是不是还差个显示窗口呢.
var win=new Ext.Window({
closable:false,
width:920,
height:450,
items:grid,
maximizable:true
}).show();
这样就有了显示的窗口了,closable设置的是这个窗口没有关闭按钮,就是不能让用户关闭这个窗口,items设置的是要显示的网格,这个应该是可以设置多个的,但是我这里只用一个就够了,maximizable设置的是窗口可以有最大化按钮.
5.还有很重要的一步,就是要加载数据库:store.load();

[color=red]现在页面的基本上就完成了,现在就剩下类中的处理了.[/color]

1.在action中首先得到PrintWriter out = response.getWriter();输出对象,
int starts = new Integer(request.getParameter("start") == null ? "0"
: request.getParameter("start"));
int limit = 15;

设置取前15条,和获取页面请求的参数获取哪些.
2.执行数据库的方法:
public List getSysUser(int start,int limit) throws SQLException{
String sql = "select top "+limit+" 用户id, 用户名称, 用户密码, 用户电话, 用户邮箱, " +
" 用户手机,用户地址 from 用户信息 where 用户id not in" +
" (select top "+start+" 用户id from 用户信息 order by 用户id desc ) order by 用户id desc";
Connection conn =null;
ResultSet rs = null;
List<SystemUserVo> list = null;
log.fine( "[query(sqlLabel)] sql : " + sql );
try {
conn = DbTool.getDs().getConnection();
PreparedStatement pstm = conn.prepareStatement(sql);
//pstm.setInt(1,start);
//pstm.setInt(2,limit);
rs = pstm.executeQuery();
} catch (SQLException e) {
e.printStackTrace();
}
if(null!=rs){
list = new ArrayList<SystemUserVo>();
while(rs.next()){
SystemUserVo user = new SystemUserVo();
user.setUserId(rs.getString(1));
user.setUserName(rs.getString(2));
user.setUserPhone(rs.getString(4));
user.setUserEmail(rs.getString(5));
user.setMobilePhone(rs.getString(6));
user.setUserAddress(rs.getString(7));
list.add(user);
}
}
if(conn!=null){
conn.close();
}
return list;


}


3.再回到action当中,得到数据库的总条数
int count=0;
在dao中的方法:
public int getSysUserCount(){
String sql="select count(*) count from 用户信息";
Connection conn =null;
ResultSet rs = null;
int count=0;
try {
conn = DbTool.getDs().getConnection();
PreparedStatement pstm = conn.prepareStatement(sql);
rs = pstm.executeQuery();
if(rs.next()){
count=rs.getInt(1);
}
} catch (SQLException e) {
e.printStackTrace();
}
try {
if(conn!=null){
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}

return count;

}

在action中把获取到数据库的总条数赋给
count=new BrowseSystemUser().getSysUserCount();

3.现在就改输出到页面了.
if(list.size()<=0){//先决条件
out.println("{totalProperty:0,data:[]}");
return null;
}

如果数据库的数据位空就返回一个空.
4.如果有数据,就改拼json语句了:
StringBuffer sb = new StringBuffer("{totalProperty:" + count
+ ",data:[");

SystemUserVo sys = list.get(0);

sb.append("{userId:"+sys.getUserId()+",userName:'" + sys.getUserName() + "',userPhone:'"
+ sys.getUserPhone() + "',userMail:'" + sys.getUserEmail()
+ "',mobilePhone:'" + sys.getMobilePhone() + "',userAddress:'"
+ sys.getUserAddress() + "'}");
int size=list.size();
for (int i = 1; i < size; i++) {
SystemUserVo user = list.get(i);
sb.append(",{userId:"+user.getUserId()+",userName:'" + new String(user.getUserName().getBytes()) + "',userPhone:'"
+ user.getUserPhone() + "',userMail:'" + user.getUserEmail()
+ "',mobilePhone:'" + user.getMobilePhone() + "',userAddress:'"
+ new String(user.getUserAddress().getBytes()) + "'}");
}

sb.append("]}");
out.println(sb.toString());
return null;

这样就实现了ext做的分页.
Ext前台分页(页面分页) 实现前台分页的扩展文件(来源于网络) 博文链接:https://simplehumn.iteye.com/blog/552702 立即下载

相关推荐

ext分页查询ext分页查询ext分页查询ext分页查询ext分页查询

ext分页查询ext分页查询ext分页查询ext分页查询ext分页查询ext分页查询ext分页查询ext分页查询ext分页查询ext分页查询ext分页查询ext分页查询ext分页查询ext分页查询ext分页查询ext分页查询ext分页查询ext分页查询ext分页查询ext分页查询ext分页查询

Extjs实现分页效果

Extjs实现分页还是比较简单的,主要是这套流程弄明白就可以了。(Extjs4.0以后版本适用) 首先js文件需要引入PagingMemoryProxy.js Ext.Loader.setConfig({ enabled: true }); Ext.Loader.setPath('Ext.ux', '../../../Scripts/ExtJS/ux'); Ext.require([ '...

雨中深巷的油纸伞 3903

Ext前台分页

NULL 博文链接:https://huanglz19871030.iteye.com/blog/656046

Ext4.0.7分页工具自定义分页条数

先给出效果: 第一步:先定义store 本人一般都是直接从api或者网上cv操作的 noSetMeterStore = Ext.create('Ext.data.Store',{ model : noSetModel,//model根据自己需求定义model pageSize : itemsPerPage,//分页条数,

Y_FQY的博客 3632

分页EXT分页EXT

分页EXT分页EXT分页EXT分页EXT分页EXT分页EXT分页EXT分页EXT分页EXT分页EXT

ExtJs分页

Extjs+springmvc登录注册,分页,sqlserver08

Ext Js分页显示示例原理详解

前几天我们项目组讨论给**公司关于**产品做一个功能展示的用例。讨论到view层时,用那种框架。最终选中了大名鼎鼎的EXT JS 框架来做view。这里的view涉及的不是很复杂。因为它仅仅是个Demo。最常用的就是分页显示数据了。目前extjs仅仅支持xml和json两种格式的数据展现。就性能而言。Extjs不可能用于较大的项目。性能确实不敢恭维。这里我们仅仅简单的介绍一下它的分页原理。其实他的...

aa00aa00的专栏 341

有限元法(Finite Element Method,FEM)原理详解

有限元法( FEM )是一种流行的方法,用于数值求解工程和数学建模中出现的微分方程。

车手只需要车和手,压力来自轮胎 7万+

Extjs 分页技术详细介绍和baseParams属性介绍

Extjs 分页技术详细介绍和baseParams属性介绍   分页原理:1.Extjs分页是根据store.load({params:{start:0,limit:10}}); 中start,limit这两个参数来进行分页的。(1).当store第一次load的时候,start=0,limit=10;(2).当点击翻页按钮时,store进行load,此时 start=start+page...

zyjustin9的专栏 1662

Android System Slice应用加载分析,及启用Slice后,锁屏日期第一次开机正常显示,但后面锁屏不显示问题分析

最近发现Android P上锁屏界面,日期不显示,发现从P开始后,出现了Slice来允许应用以模块化,可交互的方式,插入多个使用场景。Android P的system UI 也使用到了这一特性,表现为锁屏时间,日期,勿扰图标,闹钟等。 如何使用Slice 以System UI中KeyguardSliceView.java来说明它的使用方法 首先,我们打开System UI 的mk 文件,可以看到以...

qq_33595823的博客 3034

Python+OpenCV实战:5分钟搞定机械臂手眼标定(眼在手上模式)

本文详细介绍了使用Python和OpenCV在5分钟内完成机械臂手眼标定(眼在手上模式)的实战教程。通过解析相机坐标系与机械臂基坐标系的转换关系,提供从数据采集到标定矩阵计算的全流程代码实现,帮助开发者快速解决AX=XB问题,提升机械臂视觉引导精度。

weixin_33670786的博客 495

EXT 分页

在extjs中,类Ext.PagingToolbar封装了关于分页的操作,该类从Toolbar继承而来,单从名字上看,我们也猜得出这是一个能够处理分页的工具栏。好吧,那我们就来看看如何构造这样一个工具栏吧。PagingToolbar类的构造函数需要一个json对象来进行配置,在js中,使用json对象来提供所需参数非常方便,这样使得我们可以只填写感兴趣的参数,并且不必关心参数的顺序。我们的分页工具...

iteye_18684的博客 356

[LaTeX] 使用natbib宏包实现参考文献的“作者-年份”引用格式及常见编译错误排查

本文详细介绍了在LaTeX中使用natbib宏包实现参考文献“作者-年份”引用格式的完整流程。从宏包配置、.bib文件准备到标准编译步骤,重点解析了常见的“Bibliography not compatible with author-year”错误成因,并提供了彻底清理辅助文件等解决方案,帮助用户高效排版符合学术规范的参考文献。

moon9的博客 481

EXT combobox 分页 其实很简单

     开始对EXT分页没搞透彻,所以做combobox的分页不知道如何下手。经过一段时间的使用终于弄明白了。刚学EXT分页的时候搞不清楚他的原理,其实很简单,就是把异步请求的json数据填充到grid中。至于分页实际上只是对一些参数的控制,start,limit还有个重要的参数baseParams.我们经常遇到分页的情况,同时还要对分类的数据进行分页。刚开始学,不分类的数据分页都搞不清楚,更不...

泉水依然 820

Ubuntu20.04安装NVIDIA显卡驱动避坑指南:从.run文件到完美运行

本文详细介绍了在Ubuntu20.04系统上通过.run文件安装NVIDIA显卡驱动的完整流程和避坑技巧。从禁用Nouveau驱动、选择合适显示管理器到处理常见安装问题,提供了一套经过验证的解决方案,帮助用户顺利完成驱动安装并优化性能。

weixin_30776273的博客 602

【Windows Server 2019】活动目录 (Active Directory) ——将计算机加入域和脱离域

博文介绍了如何将计算机加入AD域和脱离AD域,包括加入域,验证客户机加入到域后的信息,使用域账户用户在客户机上登录,使用本地账户用户在计算机上登录,脱离域。

VMware, Windows, Linux, Cisco, Container, Kubernetes, Kali 6169

关于EXT用json返回结果分页的问题

关于EXT用json返回结果分页的问题最近在用ext,可遇到了一个很奇怪的问题 index.jsp String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()

philip的专栏 1488

Python开发MCP Client

全部例子只是MCP Client访问MCP Server的过程,那么这样其实就失去了MCP协议的创建的初衷,和大模型集成后才能发挥MCP最大的作用。

Criss@陈磊 2971

初始EXT分页

本人第一篇博客,没什么太多想说的,自己学习EXT有一段时间了,由于本人比较笨,历尽千辛万苦,终于做出来了EXT采用JSON对象的分页查询,拿出来与各位EXT初学者分享一下,最简单的分页了,见笑见笑: JSP页面代码: My JSP 'index.jsp' starting page ...

whatisdoneisdone的博客 215

四非人的保研之路,2024(2025届)四非计算机的保研经验分享(西南交通、苏大nlp、西电、北邮、山软、山计、电科、厦大等)

本身我就是福建人,xmu 3小时就能到家,然后导这边毕业要求容易,不想读博,达到要求就能放实习,每周打卡35h,比较自由,遂考虑。北邮弱com,联系了蛮多老师,几乎都给了考核机会,面试的老师好几位都考核人工智能基础,会问你卷积的计算,问的还是蛮细的。当时结果是暂定,以为是稳了,遂没联系其他老师,但是之后询问发现只是候补,懒得联系其他老师,928候补到,放弃。东北大学,2000人大机试,入营点送,全国巡回面试,每个人就面不到10分钟,我就被问了3个问题就结束了,候补。科研组,导师有人脉,想读博出成果可以去。

专注于AI领域前沿知识,业余爱好开发软件 4351

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

用JsonLib实现EXT里的分页

用JsonLib实现EXT里的分页

woshi_bobo2010 1052

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

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

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

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Ext PagingToolbar 查询分页

var gridStore=new Ext.data.JsonStore({ url:"Materials.aspx?witch=gridData", root:"gridData", baseParams:{ limit:20, start:0, comboValue:""...

dianxing9228的博客 242

Ext.js 分页查询及展示分析

最近工作上面用到的前端框架是EXT.js,最近收到一个问题,分页查询总是走不到下一页。 现将分析过程记录如下: **ext三大件:**Model、Proxy、Store。早期的版本应该有些出入 1.Ext.data.Model Model可以看做是一个数据实例 2.Ext.data.store store 用来装载 Ext.data.Model 数据,一般通过Ext.data.proxy.Prox...

Something of an idiot 1360

Ext+DWR分页的例子(保证能用)

需要dwrproxy.js,下面提供dwrproxy.js下载(我在前人基础修改,非我直接写) http://download.youkuaiyun.com/source/1823711  JAVA实体类: public class ListRange { public ListRange(Object[] data, int totalSize) {  this.data = d

半屡闲风 1847
上一篇: jsp传值出现乱码
下一篇: Java IO实现文件以及文件夹的复制
mapengwei
博客等级 码龄17年 1粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值