简单分页的实现

注:

以下介绍的分页为简单的分页,适合数据量小的模块。如果查询展现的数据量非常大,此分页实现不适合。

 

1:参照jsp页面

 

<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ page isELIgnored="false" %>	
<%
	String path = request.getContextPath();
	String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
		<base href="<%=basePath%>">
		<title>所有用户列表</title>
    <script type="text/javascript">
			function onlyNum(){ 
				if(!(event.keyCode==46)&&!(event.keyCode==8)&&!(event.keyCode==37)&&!(event.keyCode==39)) 
				if(!((event.keyCode>=48&&event.keyCode<=57)||(event.keyCode>=96&&event.keyCode<=105))) 
				event.returnValue=false; 
			} 

			function selectPage(page,pageCount){
				var page = page;
				var pageCount = pageCount;
				var pageCode = document.getElementById("pageCode").value;
				if(pageCount==0){
					alert("当前无数据");
				}else if(pageCode==""){
					alert("请输入页数");
				}else if(pageCode > pageCount || pageCode < 1){
					alert("超出页数范围");
				}else if(page==1 && page==pageCode){   
	         		alert("当前已是第一页");
     			}else if(page==pageCount && page==pageCode){
     				alert("当前已是最后一页");
     			}else if(page==pageCode){
     				alert("已是当前页");
     			}else {
     				form1.action = "<%=request.getContextPath()%>/pageTPwUserList.action?page="+pageCode;
					form1.submit();
     			}
			}
			function selectSy(page,pageCount){
				var page = page;
				var pageCount = pageCount;
				if(pageCount==0){
					alert("当前无数据");
				}else if(page==1){   
	         		alert("当前已是第一页");
     			} else {
	     			form1.action = "<%=request.getContextPath()%>/pageTPwUserList.action?page=1";
					form1.submit();
     			}
			}
			function selectSyy(page,pageCount){
				var page = page;
				var pageCount = pageCount;
				if(pageCount==0){
					alert("当前无数据");
				}else if(page==1){   
	         		alert("当前已是第一页");
     			} else{
	     			var pageS = page-1;
					form1.action = "<%=request.getContextPath()%>/pageTPwUserList.action?page="+pageS;
					form1.submit();
     			}
			}
			function selectXyy(page,pageCount){
				var page = page;
				var pageCount = pageCount;
				if(pageCount==0){
					alert("当前无数据");
				}else if(page==pageCount){
					alert("当前已是最后一页");
				}else{
					var pageX = page+1;
					form1.action = "<%=request.getContextPath()%>/pageTPwUserList.action?page="+pageX;
					form1.submit();
				}
			}
			function selectWy(page,pageCount){
				var page = page;
				var pageCount = pageCount;
				if(pageCount==0){
					alert("当前无数据");
				}else if(page==pageCount){
					alert("当前已是最后一页");
				}else{
					form1.action = "<%=request.getContextPath()%>/pageTPwUserList.action?page="+pageCount;
					form1.submit();
				}
			}
		</script>  
 	 </head>
  
  <body>
 	
   <form action="" id="form1" οnsubmit="return true;" method="post">

   <table>
   	<tr><td>序号</td><td>ID号</td><td>登入名</td></tr>
	<s:iterator value="list"  id="sa" status="stat" >
		<tr>
			
			 <td>
				<input type="checkbox"/>
				<s:property value="#stat.index+1"/>
			 </td>
			 <td align = "center"><s:property value="#sa.PId"/></td>
			 <td align = "center"><s:property value="#sa.PLoginname"/></td>
		</tr>	 
	 </s:iterator>
   </table>
	  记录总数
	  <s:property value="count"/>
	  <input type="hidden" />条    共
	  <s:property value="pageCount"/>页 当前是第
	  <s:property value="page"/>页 每页15条 
	  <input type="button" id="tz"  οnclick="selectPage(<s:property value="page"/>,<s:property value="pageCount"/>)" value="跳转到 ">第
	  <input type = "text"  id="pageCode" οnkeydοwn="onlyNum();" style="ime-mode:Disabled;height:19px;width:25px" > 页 
	  <input type="button" id="sy"  οnclick="selectSy(<s:property value="page"/>,<s:property value="pageCount"/>)" value="首页">
	  <input type="button" id="syy" οnclick="selectSyy(<s:property value="page"/>,<s:property value="pageCount"/>)" value="上一页 ">
	  <input type="button" id="xyy" οnclick="selectXyy(<s:property value="page"/>,<s:property value="pageCount"/>)" value="下一页">
	  <input type="button" id="wy"  οnclick="selectWy(<s:property value="page"/>,<s:property value="pageCount"/>)" value="尾页 ">
   </form>	
  </body>
</html>


 

 

2:参照action类 片段

 

	private int count = 0;
	private int pageCount = 0;
	private int page = 1;
	private List<TPwUser> list;	//此list类型为对应数据的bean类型

	//实现四个全局变量的get set 方法

	
	//此方法点击翻页的时候执行
	public String pageSelect() throws Exception {
		this.list = tPwUserService.getAllTPwUser(); //把servcie层获得的数据赋给list。
		count = list.size();
		pageCount = count / 15;
		if (count % 15 != 0) {
			pageCount = pageCount + 1;
		}
		if (page * 15 > count) {
			this.list = list.subList((page - 1) * 15, count);
		} else {
			this.list = list.subList((page - 1) * 15, page * 15);
		}
		return SUCCESS;
	}

	/**
	 * 第一次请求展现列表时调用Service层查找所有TPwUser用户列表
	 */
	public String getAllTPwUserList() {
		this.list = tPwUserService.getAllTPwUser();
		count = list.size();
		pageCount = count / 15;
		if (count == 0) {
			return SUCCESS;
		} else if (count < 15) {
			pageCount = 1;
			this.list = list.subList((page - 1) * 15, count - 1);
			return SUCCESS;
		} else {
			if (count % 15 != 0) {
				pageCount = pageCount + 1;
			}
			this.list = list.subList((page - 1) * 15, page * 15);
			return SUCCESS;
		}
	}


 

3:参照Struts.xml 片段

 

		<!-- 第一次请求获得数据列表Action -->
		<action name="TPwUserList"
			class="TPwUserAction" method="getAllTPwUserList">
			<result name="success">/jsp/TPwUser/TPwUserList.jsp</result>
			<result name="error">/regist.jsp</result>
		</action>
		
		<!-- 翻页时请求Action -->
		<action name="pageTPwUserList"
			class="TPwUserAction" method="pageSelect">
			<result name="success">/jsp/TPwUser/TPwUserList.jsp</result>
			<result name="error">/regist.jsp</result>
		</action>


 

注释:

Struts.xml中配置的第二个action,method属性对应的是jsp页面中js中请求的地址中的方法。

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WPF可以通过使用Pagination控件来实现分页功能。以下是一种简单分页实现方法: 1. 首先,在XAML文件中创建一个Pagination控件,并设置其属性如下: ``` <Pagination x:Name="paginationControl" PageIndex="0" PageSize="10" /> ``` 其中,PageIndex表示当前页的索引(从0开始),PageSize表示每页显示的记录数。 2. 然后,在后台代码中,为Pagination控件的PageChanged事件添加事件处理程序: ``` paginationControl.PageChanged += PaginationControl_PageChanged; ``` 3. 在事件处理程序中,实现分页逻辑,例如从数据库中获取数据: ``` private void PaginationControl_PageChanged(object sender, PageChangedEventArgs e) { // 根据页码和每页记录数,计算需要显示的数据范围 int startIndex = e.NewPageIndex * paginationControl.PageSize; int endIndex = startIndex + paginationControl.PageSize - 1; // 从数据库中获取数据,并更新显示 List<Data> dataList = GetDataFromDatabase(startIndex, endIndex); dataGrid.ItemsSource = dataList; } ``` 其中,PageChangedEventArgs的属性NewPageIndex表示跳转后的页码。 4. 在需要显示数据的控件(如DataGrid)中,绑定数据源: ``` <DataGrid x:Name="dataGrid" AutoGenerateColumns="False"> <DataGrid.Columns> <!-- 定义列 --> </DataGrid.Columns> </DataGrid> ``` 通过以上步骤,就可以实现一个简单分页功能。当用户点击Pagination控件中的页码按钮时,会触发PageChanged事件,根据新的页码来获取相应的数据,并更新显示在DataGrid中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值