分页实现复选框的选择 各位大虾,我想实现的功能是:在分页的页面上是多条复选框的记录,假设我在第一页上选择了三条了记录,然后点击下一页,又选择了两条记录,然后点击上一页,原来选择的三条记录前面的对号消失了,处于未选中状态,怎么才能实现点击上一页,原来的记录还处于选中状态。大虾们帮帮忙 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 记入cookie或者记入session啥的么……或者直接把页面合并,放到不同的DIV里,比如显示第一页就只显示第一个DIV里的复选框,点击下一页后隐藏第一个DIV,显示第二个DIV这样 直接用js来控制div的显隐! 如果数据不多的话,值得使用! 如果翻页时页面未刷新,可以把选择的内容保存到js变量中;否则可以存到cookie中;页面显示时读取选择项记录再还原 大虾们,小弟还是不是很明白,怎么用js来隐藏div啊,数据是分页的,我想用js来实现获取的数据,但只能获取当前页的数据,翻页后原来选择的获取不到啊 记入cookie是好的做法,div是不行的 做法就是,在你点checkbox的时候,同时进行记录、删除cookie内的值,翻页的时候,生成页面的时候读取出来,如果本页的有选择的,就设置checked=true.这里有asp.net现成的例子,。做法基本类似http://dotnet.aspx.cc/file/Cross-Pages-Checked-GridView.aspx实例http://dotnet.aspx.cc/Exam/GridViewMultiSelect.aspx 对,我就是想实现你给我这个实例的效果,cookie我不是很会使用 啊 <script type="text/javascript"> function SetArticleId(o, i) { if (o.checked) { AddCookie(i) } else { RemoveCookie(i) } } function SetCookie(name, value) { document.cookie = name + "=" + escape(value); } function GetCookie(name) { if (document.cookie.length > 0) { c_start = document.cookie.indexOf(name + "="); if (c_start != -1) { c_start = c_start + name.length + 1; c_end = document.cookie.indexOf(";", c_start); if (c_end == -1) c_end = document.cookie.length; return unescape(document.cookie.substring(c_start, c_end)); } } return ""; } function AddCookie(i) { d = GetCookie("ArticleId"); if (d == "") d = "|"; if (d.indexOf("|" + i + "|") == -1) { d += i + "|"; SetCookie("ArticleId", d); } } function RemoveCookie(i) { d = GetCookie("ArticleId"); var reg = new RegExp("\\|" + i + "\\|"); if (reg.test(d)) { d = d.replace(reg, "|"); SetCookie("ArticleId", d); } } </script>然后你在asp的分页里面<%Dim ArticlesArticles = Request.Cookies("ArticleId")%>循环分页的地方写<input type="checkbox" name="ArticleId" onclick="SetArticleId(this,<%=rs("ArticleId")%>);" <%if InStr(Articles,"|" & rs("ArticleId")%> & "|")>0 Then Response.Write "checked='checked'"%> /> <%if InStr(Articles,"|" & rs("ArticleId")%> & "|")>0 Then Response.Write "checked='checked'"%>这句话能给解释一下吗,尤其是InStr()不是很明白,谢谢你帖的代码 InStr就是去判断id是否已经在Cookie中存在 我是用的jsp,问题还没有解决,但是仍然谢谢各位大虾了~~~~ checked='checked'这一句老是出错,是不是应该改成String checked="checked";啊 我现在的程序是这样的,但是还是不行<%@page contentType="text/html;charset=GB2312" %><%@page import="java.io.*,java.util.*,java.sql.*,chapter5.*" %><%@page errorPage="error.jsp" %><jsp:useBean id="pages" scope="page" class="chapter5.pages" /> <html> <head><title>JDBC访问数据库实例</title> <script type="text/javascript">function doCheck(){var obj= document.getElementsByName("pkey"); var len=obj.length;var arr = new Array();var ss=''; alert("数组长度"+obj.length);for(var i = 0; i < obj.length; i++) { if(obj[i].checked) { arr[i]=obj[i].value;ss+=arr[i]+",";// alert(arr[i]);} } alert("ss="+ss); window.location.href="updateBook.jsp?bookno="+ss;}</script><script type="text/javascript"> function SetArticleId(o, i) { if (o.checked) { AddCookie(i) } else { RemoveCookie(i) } } function SetCookie(name, value) { document.cookie = name + "=" + escape(value); } function GetCookie(name) { if (document.cookie.length > 0) { c_start = document.cookie.indexOf(name + "="); if (c_start != -1) { c_start = c_start + name.length + 1; c_end = document.cookie.indexOf(";", c_start); if (c_end == -1) c_end = document.cookie.length; return unescape(document.cookie.substring(c_start, c_end)); } } return ""; } function AddCookie(i) { d = GetCookie("ArticleId"); if (d == "") d = "|"; if (d.indexOf("|" + i + "|") == -1) { d += i + "|"; SetCookie("ArticleId", d); } } function RemoveCookie(i) { d = GetCookie("ArticleId"); var reg = new RegExp("\\|" + i + "\\|"); if (reg.test(d)) { d = d.replace(reg, "|"); SetCookie("ArticleId", d); } } </script> </head> <h2>JDBC访问数据库实现分页</h2> <h3>所有的书籍信息如下</h3> <body> <% //String Articles=request.Cookies("ArticleId"); %> <% Cookie[] cookieList= request.getCookies(); Cookie scookieList=null;String Articles; for(int j=0;j<cookieList.length;j++){ scookieList=cookieList[j]; Articles =scookieList.getValue(); } Articles="1"; %> <a href="newBook.jsp"><b>新增书籍</b></a> <input type="button" value="修改书籍" onClick="doCheck()"> <a href="updateBook.jsp"><b>修改书籍</b></a> <form action="delete.jsp" method="GET"> <table border="1"> <tr> <td><b>选择</b></td> <td><b>编号</b></td> <td><b>书籍名</b></td> <td><b>书籍译作者</b></td> <td><b>书籍定价</b></td> <td><b>出版日期</b></td> </tr> <% String CountQuery="select count(*) from book"; String query = "select * from book"; ResultSet rs = pages.querySql(CountQuery,query,request); String footer = pages.PageFooter(); if (pages.intPageCount>0) { int i=0; while (rs.next()) { i++; if (i>((pages.intPage-1)*pages.intPageSize) &&(i<=pages.intPage*pages.intPageSize)) { %> <tr> <td> <!-- <input type="checkbox" name="pkey" value="<%=String.valueOf(rs.getInt("no")) %>" /> --> <input type="checkbox" name="ArticleId" onclick="SetArticleId(this,<%=String.valueOf(rs.getInt("no"))%>);" <%if (Articles.indexOf(String.valueOf(rs.getInt("no")))>0) {String checked="checked"; } %>/> </td> <td><%= rs.getInt("no") %></td> <td><%= rs.getString("bookName") %></td> <td><%= rs.getString("author") %></td> <td><%= rs.getDouble("price") %></td> <td><%= rs.getTimestamp("puDate")%></td> </tr> <% } } } out.println("<tr><td colspan=2>"+footer+"</td></tr>"); rs.close(); pages.close_all(); %> </table> <input type="submit" name="submit" value="删除选中的书籍"> </form> </body></html>我把你给的脚本都用上了,为什么还是不行呢? 正则表达式 匹配图片地址有效地址 请问一个基本的问题 怎样将输入内容和选好的照片加载? 请教个生成报表的问题 谢谢 checkbox 全选问题 Embed获取音乐当前播放时间 取地址变量及值的方法(不是自己写的),谁知道? 各位兄弟辛苦了,算算自己交了多少税吧~~ 100分请求帮忙解决几个问题。都比较简单的!大伙都来看看。 要判断2个顺序不同的字母字符串,如何判断? 怎么把DIV 放在 activex object 上。。(急) 打印整个HTML页面的代码,为啥不正确? 显示 null ?
直接用js来控制div的显隐! 如果数据不多的话,值得使用!
否则可以存到cookie中;
页面显示时读取选择项记录再还原
http://dotnet.aspx.cc/file/Cross-Pages-Checked-GridView.aspx实例
http://dotnet.aspx.cc/Exam/GridViewMultiSelect.aspx
function SetArticleId(o, i) {
if (o.checked) {
AddCookie(i)
}
else {
RemoveCookie(i)
}
}
function SetCookie(name, value) {
document.cookie = name + "=" + escape(value);
}
function GetCookie(name) {
if (document.cookie.length > 0) {
c_start = document.cookie.indexOf(name + "=");
if (c_start != -1) {
c_start = c_start + name.length + 1;
c_end = document.cookie.indexOf(";", c_start);
if (c_end == -1) c_end = document.cookie.length;
return unescape(document.cookie.substring(c_start, c_end));
}
}
return "";
}
function AddCookie(i) {
d = GetCookie("ArticleId");
if (d == "") d = "|";
if (d.indexOf("|" + i + "|") == -1) {
d += i + "|";
SetCookie("ArticleId", d);
}
} function RemoveCookie(i) {
d = GetCookie("ArticleId");
var reg = new RegExp("\\|" + i + "\\|");
if (reg.test(d)) {
d = d.replace(reg, "|");
SetCookie("ArticleId", d);
}
}
</script>
然后你在asp的分页里面<%
Dim Articles
Articles = Request.Cookies("ArticleId")%>循环分页的地方写
<input type="checkbox" name="ArticleId" onclick="SetArticleId(this,<%=rs("ArticleId")%>);" <%if InStr(Articles,"|" & rs("ArticleId")%> & "|")>0 Then Response.Write "checked='checked'"%> />
<%@page contentType="text/html;charset=GB2312" %>
<%@page import="java.io.*,java.util.*,java.sql.*,chapter5.*" %>
<%@page errorPage="error.jsp" %>
<jsp:useBean id="pages" scope="page" class="chapter5.pages" />
<html>
<head><title>JDBC访问数据库实例</title>
<script type="text/javascript">
function doCheck(){var obj= document.getElementsByName("pkey");
var len=obj.length;
var arr = new Array();
var ss='';
alert("数组长度"+obj.length);
for(var i = 0; i < obj.length; i++)
{
if(obj[i].checked)
{
arr[i]=obj[i].value;
ss+=arr[i]+",";
// alert(arr[i]);} }
alert("ss="+ss);
window.location.href="updateBook.jsp?bookno="+ss;
}
</script>
<script type="text/javascript">
function SetArticleId(o, i) {
if (o.checked) {
AddCookie(i)
}
else {
RemoveCookie(i)
}
}
function SetCookie(name, value) {
document.cookie = name + "=" + escape(value);
}
function GetCookie(name) {
if (document.cookie.length > 0) {
c_start = document.cookie.indexOf(name + "=");
if (c_start != -1) {
c_start = c_start + name.length + 1;
c_end = document.cookie.indexOf(";", c_start);
if (c_end == -1) c_end = document.cookie.length;
return unescape(document.cookie.substring(c_start, c_end));
}
}
return "";
}
function AddCookie(i) {
d = GetCookie("ArticleId");
if (d == "") d = "|";
if (d.indexOf("|" + i + "|") == -1) {
d += i + "|";
SetCookie("ArticleId", d);
}
} function RemoveCookie(i) {
d = GetCookie("ArticleId");
var reg = new RegExp("\\|" + i + "\\|");
if (reg.test(d)) {
d = d.replace(reg, "|");
SetCookie("ArticleId", d);
}
}
</script> </head>
<h2>JDBC访问数据库实现分页</h2>
<h3>所有的书籍信息如下</h3>
<body>
<%
//String Articles=request.Cookies("ArticleId"); %>
<%
Cookie[] cookieList= request.getCookies();
Cookie scookieList=null;
String Articles;
for(int j=0;j<cookieList.length;j++){
scookieList=cookieList[j];
Articles =scookieList.getValue();
}
Articles="1";
%>
<a href="newBook.jsp"><b>新增书籍</b></a>
<input type="button" value="修改书籍" onClick="doCheck()">
<a href="updateBook.jsp"><b>修改书籍</b></a>
<form action="delete.jsp" method="GET">
<table border="1">
<tr>
<td><b>选择</b></td>
<td><b>编号</b></td>
<td><b>书籍名</b></td>
<td><b>书籍译作者</b></td>
<td><b>书籍定价</b></td>
<td><b>出版日期</b></td>
</tr>
<%
String CountQuery="select count(*) from book";
String query = "select * from book";
ResultSet rs = pages.querySql(CountQuery,query,request);
String footer = pages.PageFooter();
if (pages.intPageCount>0)
{
int i=0;
while (rs.next())
{
i++;
if (i>((pages.intPage-1)*pages.intPageSize) &&(i<=pages.intPage*pages.intPageSize))
{
%> <tr>
<td>
<!-- <input type="checkbox" name="pkey" value="<%=String.valueOf(rs.getInt("no")) %>" />
-->
<input type="checkbox" name="ArticleId" onclick="SetArticleId(this,<%=String.valueOf(rs.getInt("no"))%>);" <%if (Articles.indexOf(String.valueOf(rs.getInt("no")))>0) {String checked="checked"; } %>/>
</td>
<td><%= rs.getInt("no") %></td>
<td><%= rs.getString("bookName") %></td>
<td><%= rs.getString("author") %></td>
<td><%= rs.getDouble("price") %></td>
<td><%= rs.getTimestamp("puDate")%></td>
</tr>
<%
}
}
}
out.println("<tr><td colspan=2>"+footer+"</td></tr>");
rs.close();
pages.close_all();
%>
</table>
<input type="submit" name="submit" value="删除选中的书籍">
</form>
</body>
</html>
我把你给的脚本都用上了,为什么还是不行呢?