`

【数据表格】-003-分页实现

阅读更多

1、前台分页展示界面



 

 

2、WebContent/jsp/datagrid_003.jsp

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%
	String root = request.getContextPath();
%>	
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>数据表格--分页实现</title>
<!-- 引入外部样式 -->
<link rel="stylesheet" type="text/css" href="<%=root %>/css/common.css" />
<!-- 引入easyui依赖库 -->
<script type="text/javascript" src="<%=root %>/js/jquery-easyui-1.2.6/jquery-1.7.2.min.js"></script>
<link rel="stylesheet" type="text/css" href="<%=root %>/js/jquery-easyui-1.2.6/themes/default/easyui.css" />
<link rel="stylesheet" type="text/css" href="<%=root %>/js/jquery-easyui-1.2.6/themes/icon.css" />
<script type="text/javascript" src="<%=root %>/js/jquery-easyui-1.2.6/jquery.easyui.min.js"></script>
<script type="text/javascript" src="<%=root %>/js/jquery-easyui-1.2.6/locale/easyui-lang-zh_CN.js"></script>
<script type="text/javascript">
	$(function() {
		$('#t_user').datagrid({
			idField:'id', //标识字段,只要创建数据表格,就必须要加 idField
			url:'<%=root %>/UserServlet?method=getList', //后台访问地址
			title:'用户列表', //表格标题
			width:1000, //表格宽度
			height:400, //表格高度
			fitColumns:true, //自动扩展或收缩列的大小以适应网格宽度和防止水平滚动条
			/*
			frozenColumns:[[ //冻结列特点,会将列冻结在左边,不能与fitColumns特性一起使用
				{field:'username',title:'用户名',width:100}
			]],*/
			striped:true, //隔行换色,默认值为false
			nowrap:true, //当true时,把数据显示在一行;当false时,数据会被换行;默认值为true
			loadMsg:'数据正在加载,请耐心等待...',
			rownumbers:true, //显示行号,默认为false
			singleSelect:true, //当true时,只允许单选,默认为false
			remoteSort:false, //定义是否从服务器给数据排序,默认值为true,当为false时,sortName和sortOrder设置才有效
			sortName:'salary', //定义可以排序的列
			sortOrder:'desc', //定义列的排序顺序,只能用'asc'或'desc'
			pagination:true, //在表格底部显示分页栏,默认为false不显示
			pageSize:5, //当设置了pagination特性时,初始化每页显示的记录数
			pageList:[5,10,15,20,50], //当设置了pagination特性时,初始化页面尺寸的选择列表,默认值[10,20,30,40,50]
			rowStyler:function(rowIndex,rowData) { //行样式设置
				if(rowData.age>25) {
					return "background:red";
				}
			},
			columns:[[ //定义对应后台传过来的列名(field),表格列的名字(title),表格宽度(width),表格列的对齐方式(align)
			    {field:'username',title:'用户名',width:100},
				{field:'password',title:'密码',width:100},
				{field:'age',title:'年龄',width:100,align:'right'},
				{field:'sex',title:'性别',width:50},
				{field:'birthday',title:'生日',width:100},
				{field:'city',title:'所属城市',width:100,align:'right'},
				{field:'salary',title:'薪水',width:100},
				{field:'starttime',title:'开始时间',width:180},
				{field:'endtime',title:'结束时间',width:180},
				{field:'description',title:'个人描述',width:150}
			]]
		});
	});
</script>
</head>
<body>
	<table id="t_user"></table>
</body>
</html>

 

3、pagination、pageSize和pageList分页特性



 
 4、前台传入后台的分页参数



 

5、com.easyui.dao.UserDao.java

 

package com.easyui.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import com.easyui.bean.TUserBean;
import com.easyui.util.DBUtil;

/**
 * 用户数据库操作类 
 * @author LiPiaoShui
 */
public class UserDao {

	/**
	 * 获取全部用户信息
	 * @return
	 */
	public List<TUserBean> getList() {
		Connection conn = null;
		PreparedStatement pstmt = null;
		ResultSet rs = null;
		List<TUserBean> uList = new ArrayList<TUserBean>();
		try {
			String sql = "select * from t_user";
			conn = DBUtil.getConnection();
			pstmt = conn.prepareStatement(sql);
			rs = pstmt.executeQuery();
			while(rs.next()) {
				TUserBean user = new TUserBean();
				user.setId(rs.getInt("id"));
				user.setUsername(rs.getString("username"));
				user.setPassword(rs.getString("password"));
				user.setSex(rs.getString("sex"));
				user.setAge(rs.getInt("age"));
				user.setBirthday(rs.getString("birthday"));
				user.setCity(rs.getInt("city"));
				user.setSalary(rs.getString("salary"));
				user.setStarttime(rs.getString("starttime"));
				user.setEndtime(rs.getString("endtime"));
				user.setDescription(rs.getString("description"));
				uList.add(user);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			DBUtil.close(rs, pstmt, conn);
		}
		return uList;
	}
	
	/**
	 * 分页显示用户信息
	 * @param currentPage
	 * @param pageSize
	 * @return
	 */
	public List<TUserBean> queryByPagination(int currentPage,int pageSize) {
		Connection conn = null;
		PreparedStatement pstmt = null;
		ResultSet rs = null;
		List<TUserBean> uList = new ArrayList<TUserBean>();
		try {
			String sql = "select * from t_user limit ?,?";
			conn = DBUtil.getConnection();
			pstmt = conn.prepareStatement(sql);
			pstmt.setInt(1, (currentPage-1)*pageSize);
			pstmt.setInt(2, pageSize);
			rs = pstmt.executeQuery();
			while(rs.next()) {
				TUserBean user = new TUserBean();
				user.setId(rs.getInt("id"));
				user.setUsername(rs.getString("username"));
				user.setPassword(rs.getString("password"));
				user.setSex(rs.getString("sex"));
				user.setAge(rs.getInt("age"));
				user.setBirthday(rs.getString("birthday"));
				user.setCity(rs.getInt("city"));
				user.setSalary(rs.getString("salary"));
				user.setStarttime(rs.getString("starttime"));
				user.setEndtime(rs.getString("endtime"));
				user.setDescription(rs.getString("description"));
				uList.add(user);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			DBUtil.close(rs, pstmt, conn);
		}
		return uList;
	}
	
	/**
	 * 获取总用户数
	 * @return
	 */
	public int getTotal() {
		Connection conn = null;
		PreparedStatement pstmt = null;
		ResultSet rs = null;
		int total = 0;
		try {
			String sql = "select count(1) from t_user";
			conn = DBUtil.getConnection();
			pstmt = conn.prepareStatement(sql);
			rs = pstmt.executeQuery();
			if(rs.next()) {
				total = rs.getInt(1);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			DBUtil.close(rs, pstmt, conn);
		}
		return total;
	}
	
}

 

6、com.easyui.servlet.UserServlet.java

 

package com.easyui.servlet;

import java.io.IOException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import net.sf.json.JSONArray;

import com.easyui.bean.TUserBean;
import com.easyui.dao.UserDao;

/**
 * 用户控制器类
 * 
 * @author LiPiaoShui
 */
public class UserServlet extends HttpServlet {

	private static final long serialVersionUID = 9140830946116659042L;
	private UserDao uDao = new UserDao();

	protected void doGet(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		this.doPost(request, response);
	}

	protected void doPost(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");
		String method = request.getParameter("method");
		if ("getList".equals(method)) {
			getList(request, response);
		}
	}

	/**
	 * 获取全部用户信息
	 * 
	 * @param request
	 * @param response
	 */
	private void getList(HttpServletRequest request,
			HttpServletResponse response) {
		try {
			//当前页码
			int currentPage = Integer.parseInt(request.getParameter("page"));
			//每页显示的大小
			int pageSize = Integer.parseInt(request.getParameter("rows"));
			// 获取分页显示的用户信息
			List<TUserBean> uList = uDao.queryByPagination(currentPage, pageSize);
			//获取总用户数
			int total = uDao.getTotal();
			// json格式 --> {"total":10,"rows":[{},{}]}
			String json = "{\"total\":" + total + ",\"rows\":"
					+ JSONArray.fromObject(uList).toString() + "}";
			response.setContentType("text/html;charset=utf-8");
			response.getWriter().write(json);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}

 

 

  • 大小: 29.3 KB
  • 大小: 21.7 KB
  • 大小: 72.4 KB
  • 大小: 26 KB
分享到:
评论

相关推荐

    (源代码)第03讲:uni-pagination实现表格分页查询

    在本教程中,我们将深入探讨如何使用uni-app框架中的uni-pagination组件来实现表格数据的分页查询。uni-app是一款跨平台的开发工具,允许开发者使用Vue.js语法编写一次代码,部署到多端,如iOS、Android、H5、微信小...

    jquery插件--表格分页

    jQuery作为一个广泛使用的JavaScript库,提供了丰富的插件来帮助开发者实现各种功能,包括表格分页。本篇文章将深入探讨jQuery插件在实现表格分页中的应用及其相关知识点。 一、jQuery和表格分页基础 1. jQuery...

    vue el-table前端 file-saver 导出excel可导出分页数据.zip

    Vue.js作为一款流行的前端框架,提供了丰富的组件库,如Element UI,它包含了一个名为`el-table`的数据表格组件。本篇文章将深入探讨如何在Vue.js项目中结合`el-table`和`file-saver`库,实现前端导出分页数据到...

    使用jquery实现表格动态分页

    本教程将详细讲解如何使用jQuery库来实现表格的动态分页,同时结合Java后端进行数据的动态查询和分页处理。 首先,让我们了解动态分页的基本原理。动态分页是指在用户滚动或点击分页按钮时,仅加载当前显示的数据,...

    qt表格自定义model,支持分页展示

    在Qt框架中,为了实现高性能的表格数据展示并支持分页功能,开发者通常需要自定义QAbstractItemModel或QSortFilterProxyModel。本教程将详细讲解如何创建一个自定义的模型来实现这一目标,以便在表格视图...

    jsp , strusts ,hibernate,pager-taglib实现的分页显示

    在JSP页面中,通过引入Pager-Taglib的标签,可以便捷地实现数据的分页展示,无需编写复杂的Java脚本。用户只需设置一些属性(如当前页数、每页显示条数等),即可轻松实现前端的分页效果。 在实际应用中,当用户...

    html前端动态获取后端数据显示到表格,实现分页显示

    html前端获取后端js的数据,实现到html表格,并且实现表格分页显示,分页显示原理是要显示那一页数据就从后端获取需要显示页的数据,不会一次性获取全部数据,减小流前端的压力。后端使用js+express,读取csv文件...

    jPage jquery-ajax表格动态分页.zip

    《jPage:jQuery AJAX表格动态分页实现详解》 在网页开发中,数据展示往往涉及到大量的数据处理,尤其是在用户交互时,如何优雅地处理大量数据的分页展示,成为了提升用户体验的关键。jPage是一款基于jQuery的插件...

    GridView系列---GridView分页

    在“GridView系列---GridView分页”这个主题中,我们将深入探讨如何利用GridView实现数据的分页显示,提升用户体验并优化服务器性能。 一、GridView概述 GridView控件允许开发人员以网格形式展示数据,支持多种内置...

    Spring Boot+MybatisPlus使用JQuery DataTables表格插件展示数据、实现分页和模糊查询等功能

    在前端页面上,DataTables可以帮助我们创建交互式、响应式的数据表格。 4. **数据分页** 数据分页是处理大量数据时常见的需求,可以提高网页加载速度,减轻服务器压力。在Spring Boot和MybatisPlus中,可以通过...

    bootstrap-table,前端分页框架

    这款框架不仅支持基本的表格展示,还具备分页、排序以及丰富的数据导出能力,极大地提高了前端开发效率。 一、Bootstrap Table的基本使用 Bootstrap Table的核心在于其HTML结构和JavaScript API。首先,你需要在...

    基于tp5的vue+element-ui 实现分页

    在本项目中,我们主要探讨如何使用`ThinkPHP5 (TP5)`框架,结合前端的`Vue.js`和`Element UI`组件库来实现数据的分页显示。`ThinkPHP5`是一个流行的PHP开发框架,它提供了丰富的MVC功能,方便开发者快速构建Web应用...

    jquery插件--表格树--GridTree(后台分页版本20091018)(过期)

    总结起来,GridTree是一款集成了后台分页、多种样式选择和全选功能的jQuery表格树插件,它在处理大数据量表格的同时,也注重用户体验的提升。通过Ajax实现的后台分页,不仅优化了性能,还增强了交互性;丰富的样式...

    Qt表格分页打印

    在实现表格分页打印之前,需要创建一个数据模型,通常是QStandardItemModel或QAbstractTableModel的子类,来存储表格数据。这些模型类提供了与视图(如QTableView)交互的方法,并且可以支持表格的分页显示。 分页...

    Dom生成表格和实现分页源码

    以下是一个简单的分页实现: ```javascript // 假设我们有100条数据,每页显示10条 var totalData = [/*...*/]; var pageSize = 10; var currentPage = 1; function renderPage() { var startIndex = (current...

    jQuery json动态数据表格分页代码

    这个主题"jQuery json动态数据表格分页代码"聚焦于使用jQuery、PHP和AJAX来实现这一功能。以下是相关知识点的详细说明: 1. **jQuery**:jQuery是一个流行的JavaScript库,它简化了HTML文档遍历、事件处理、动画和...

    java_swing表格分页

    Java Swing 表格分页实现 Java Swing 是一个用于构建图形用户界面的 Java 库,提供了丰富的用户界面组件和功能。在本文中,我们将探讨如何使用 Java Swing 实现表格分页。 表格分页的需求 在实际开发中,我们经常...

    jQuery分页动态数据表格插件.zip

    总的来说,"jQuery分页动态数据表格插件.zip"是一个用于构建高效、交互性强的Web数据展示工具,它利用jQuery的强大功能,结合Ajax和CSS,实现了数据的动态加载、分页显示以及丰富的用户交互。开发者可以根据自身需求...

    jquery表格插件带分页动态数据表格代码

    本项目涉及的是使用jQuery实现的一个带有分页功能的动态数据表格插件,该插件的设计灵感来源于Excel,允许用户进行类似Excel的操作,如数据编辑和排序。 首先,`index.html`是项目的主页面文件,它包含了HTML结构,...

    bootstrap-table客户端分页实例

    这个"bootstrap-table客户端分页实例"是展示如何在不依赖服务器端处理的情况下,利用前端数据实现表格的分页功能,这对于小型项目或者数据量不大的场景非常实用。 Bootstrap Table的核心特性包括: 1. **数据源**...

Global site tag (gtag.js) - Google Analytics