8.jsp前端页面的理解:分页、筛选

news/2024/7/6 4:40:37

jsp页面刷新只是改了页码和筛选条件而已:

1.第一次访问还是点击下一页时,肯定是request.getParameter获取所有需要的参数,比如当前页码,重要的筛选条件。

//如果是第一次访问,那么很多参数默认为空,那就作一点处理就可以了
String isall = request.getParameter("isall");
	if (isall == null || isall.trim().length() <= 0) {
		isall = "noall";
	}

2.搜索内容时筛选条件在新页面留存:比如下拉框选择了重庆地区,那么下路框的重庆就会提交到新页面,通过request.getParameter得到这个值,在新页面展示下拉框时,如果输出的地区等于得到的参数,那么添加selected属性,新页面就能保存下拉框之前的选项了

<select id="rcBatch" name="rcBatch" style="width : 400px;">
<option value='-1'>全部</option>
<%
List rcBatchList = metaDao.getBusinessTypeList("RCBATCH");	//获取下拉框的所有数据内容
String rcBatch = prj.getRcBatch();	//上次页面提交的rcBatch数据
for (Iterator it1 = rcBatchList.iterator(); it1.hasNext();) {
	OptionVO option = (OptionVO) it1.next();
	if (option.getKey().equals(rcBatch)) {  //rcBatch等于rcBatchList ,option标签默认selected。
		out.println("<option value='" + option.getKey() +"' selected>" + option.getValue() + "</option>");
	} else {
		out.println("<option value='" + option.getKey() +"'>" + option.getValue() + "</option>");
	}
}
%>
</select>
</td>
<%}

3.分页时,点击下一页就是当前页码-1传递给新页面,新页面第一件事就是获取页码,有了页码还不简单吗
点击最后一页就是传递最大页码给新页面。

//例子:页码:1/1页    记录:1~17/17条      首页  上一页  下一页  末页 
<table width="99%" cellpadding="0" cellspacing="0" class="ReportTable" style="margin-top: 4px;"
	align="center">
	<tr class="Thead">
		<td align="left" colspan="12"><script language="javascript">
		var totalRows = <%=pageInfo.iTotalRow%>;
		var rowsPerPage = <%=pageInfo.iPageCountUse%>;
		var pageNo = <%=pageNo%>;
		var totalPage = <%=pageInfo.iTotalPage%>;
		var rows = <%=documentList.size()-1%>;
		document.write(showPage(totalRows,rowsPerPage,pageNo,totalPage,rows,'&nbsp;&nbsp;案卷列表'));
		</script></td>
	</tr>
</table>
function showPage(){
	//参数0为记录总数,1为每页记录数pageSize,2为当前页pageNo, 3为总页数, 4为当前这页显示条数 ,5 为这个列表的主题
	var args=showPage.arguments;
	var argv=showPage.arguments.length;
	var rscnt=args[0];
	var rs_perpage=args[1];
	var page=args[2];
	var page_cnt=args[3];
	var rows=args[4];
	var title = args[5];
	//var page_cnt=(rscnt%rs_perpage>0)?parseInt(rscnt/rs_perpage)+1:parseInt(rscnt/rs_perpage);

	pageCount = page_cnt;
	page=(page<=0)?1:page;
	page=(page<=page_cnt)?page:page_cnt;
	if(page == 0){
		page = 1;
	}

	startRow = ((page-1) * rs_perpage ) + 1;
	endRow = startRow + rows - 1;
	var img_url="um/images/page_split";
	var img_frist=img_url+"/icon_page_frist.gif";
	var img_prevs=img_url+"/icon_page_prevs.gif";
	var img_prev=img_url+"/icon_page_prev.gif";
	var img_next=img_url+"/icon_page_next.gif";
	var img_nexts=img_url+"/icon_page_nexts.gif";
	var img_last=img_url+"/icon_page_last.gif";
	var img_goto=img_url+"/btn_goto.gif";
	var img_tip_content="um/images/public/ngtc_tipContent.gif";

	var str_page="<table border=0 cellpadding=0 cellspacing=0 width='100%'><tr><td class='ngtcTipContent' nowrap>"+title+"</td><td width='600' align='right'><font color=\"#333333\">";
	str_page+="页码:"+page+ "/" + page_cnt +"页 &nbsp;&nbsp; 记录:"+ startRow + "~" + endRow + "/" + rscnt + "条&nbsp;&nbsp;";
	str_page+="&nbsp;&nbsp;&nbsp;&nbsp;";
	if(page>1) 
	        str_page+="<span style=\"cursor:pointer;\" οnclick=\"goto_page(1);\">首页</span>&nbsp;&nbsp;";
	else
		str_page+="<span style=\"color:#ccc;\">首页</span>&nbsp;&nbsp;";

	if(page>1)
		str_page+="<span style=\"cursor:pointer;\" οnclick=\"goto_page("+(page-1)+");\">上一页</span>&nbsp;&nbsp;";
	else
		str_page+="<span style=\"color:#ccc;\">上一页</span>&nbsp;&nbsp;";

	if(page<page_cnt)
		str_page+="<span style=\"cursor:pointer;\" οnclick=\"goto_page(" + (page+1) +");\">下一页</span>&nbsp;&nbsp;";
	else
		str_page+="<span style=\"color:#ccc;\">下一页</span>&nbsp;&nbsp;";

	if(page<page_cnt)
		str_page+="<span style=\"cursor:pointer;\" οnclick=\"goto_page("+page_cnt+");\">末页</span>&nbsp;&nbsp;";
	else
		str_page+="<span style=\"color:#ccc;\">末页</span>&nbsp;&nbsp;";
	//str_page+="| 到第<input type=hidden name=\"page\" id=\"page\" value=\""+page+"\">";
	//str_page+="&nbsp;<input type=\"text\" name=\"page_id\" id=\"page_id\" style=\"FILTER: Gray alpha(opacity=80);Height:15px;border:1px solid #333333;color: #666666;text-align: center;font-family:宋体,黑体;\" size=2 maxlength=4 οnkeydοwn=\"if(event.keyCode==13){chk_num(document.myform.page_id);}\" value=\""+page+"\"> 页</font>";
	//str_page+="&nbsp;<img src=\""+img_goto+"\" style=\"Cursor:hand;\" οnclick=\"chk_num(document.myform.page_id)\" align=absmiddle>";
	str_page+="</td></tr></table>";
	return str_page;
}

http://www.niftyadmin.cn/n/4557421.html

相关文章

Nginx 安装--图片服务器搭建

1. nginx 需要依赖以下模块&#xff1a; gzip模块需要 zlib 库 rewrite模块需要 pcre 库 ssl 功能需要openssl库 1.1.安装pcre 1. 获取pcre编译安装包&#xff0c;在http://www.pcre.org/上可以获取当前最新的版本 2. 解压缩pcre-xx.tar.gz包。 3. 进…

C++语言的学习方法

||| 多看书多看源码多做练习 ||| 不需要 首先你要对他有兴趣你才可能会把他学好 ||| 不需要 怎么学都学不会 不感兴趣的人 学起来很快 很好的学习地方http://www.jtr.cn/不好你杀了我 ||| 对他有兴趣的人 建议先学下c语言啊 对你来说你比较好的. ||| 没有前提 有C语言的基础 然…

jieba(杰巴)分词的三种模式

jieba&#xff08;结巴&#xff09;是一个强大的分词库&#xff0c;完美支持中文分词&#xff0c;做为最好的Python中文分词组件。 安装&#xff1a;pip install jieba 特点 支持三种分词模式&#xff1a; 1.精确模式&#xff0c;试图将句子最精确地切开&#xff0c;适合文本分…

在C#里 级联连接 怎么写

然后将它的isposeback设置为true就可以了 是下拉列表改变事件 有个事件

poj2456---Aggressive cows

tips: 1.二分时区间是否要加等号&#xff0c;看等号成立时是否需要进入循环 2.L和R的赋值要看条件&#xff0c;第一个满足条件和最后一个满足条件 3.所有的都可以归结为找位置&#xff1f;&#xff1f; //感觉是二分答案 //想要寻找最后一个满足条件C的元素的位置&#xff0c; …

Tomcat在阿里云上启动慢的解决办法

omcat在本地服务器跑&#xff0c;一切都正常&#xff0c;但部署到阿里云上&#xff0c;发现启动巨慢。 经过在网上搜索&#xff0c;找到了原因&#xff1a; Tomcat 7/8都使用org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom类产生安全随机类SecureRandom的…

哪里有c++的学习方法

||| 有本书很好《The C Programming Language》 你一定会成功的 好好学吧 好了 学c就变得很容易了 如果有点c的底子 直接学c就可以了 对于你来说 还是直接就学c 你也就喜欢上它了&#xff1b;其实无论是先学c 慢慢的就会好起来了 然后在运行自己的小程序 多运行几次别人的程序 …

AQS同步器的实现原理

1.什么是AQS? AQS的核心思想是基于volatile int state这样的volatile变量&#xff0c;配合Unsafe工具对其原子性的操作来实现对当前锁状态进行修改。同步器内部依赖一个FIFO的双向队列来完成资源获取线程的排队工作。 2.同步器的应用 同步器主要使用方式是继承&#xff0c;子类…