怎么在分页中让复选框不消失

六子 2010-06-21 02:14:09
我的分页每条记录前都有一个复选框,用户想在第一页勾选几个再在第二页勾选几个可是回到第一页勾选的就不见了,我用的是数据库分页,请问用哪种分页能实现以上需求,希望能提供参考代码或思路~!QQQ
...全文
365 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
骑猪看海 2010-06-22
  • 打赏
  • 举报
回复
session不太好吧,不使用url分页就可以保留了
GlyphVectory 2010-06-22
  • 打赏
  • 举报
回复
方法1有点误:更正
/*
function FnCurrentChk(obj)
* {
* if(obj)
* {
* var _hid=document.getElementById("HiddenId").value;
* if(_hid!="")
* {
* document.getElementById("HiddenId").value+=document.getElementById("HiddenId").value+obj.value+",";
* return ;
* }
* document.getElementById("HiddenId").value=obj.value+",";
* }else
* {
* document.getElementById("HiddenId").value=document.getElementById("HiddenId").value.replace(obj.value+",","");
* }
* }

*/
GlyphVectory 2010-06-22
  • 打赏
  • 举报
回复
同意#6楼大哥说的,不要滥用
给个方案(项目中经常用:介意lz用Repeater)
1:前台准备一个隐藏域Hidden
2:/*
两个方法:多选、更新多选选中
* function FnCurrentChk(obj)
* {
* if(obj)
* {
* var _hid=document.getElementById("HiddenId").value;
* if(_hid!="")
* {
* document.getElementById("HiddenId").value+=document.getElementById("HiddenId").value+obj.value+",";
* return ;
* }
* document.getElementById("HiddenId")=obj.value+",";
* }
* }
* function FnUpdateCurrentChk()
* {
* var _hid=document.getElementById("HiddenId").value.split(",");
* if(_hid){
* for(var i=0;i<_hid.length;i++)
* {
* if(_hid[i])document.getElementById(_hid[i]).checked=true;
* }
* }
* }
*/
每翻页的时候调用FnUpdateCurrentChk();OK
  • 打赏
  • 举报
回复
不要滥用Session!Session是全局的,不要因为一个借口“效率”的失误而毁了你的程序。
koozenshin 2010-06-21
  • 打赏
  • 举报
回复
先保存,回來的時候再恢復~
S_trance 2010-06-21
  • 打赏
  • 举报
回复
给你个小例子

//将选中checkbox行Id记录到arrys数组中并存入session
private void GetChoiceSelectedCheckBox()
{
foreach (GridViewRow row in GridView1.Rows)
{
int index = (int)GridView1.DataKeys[row.RowIndex].Value;
bool result = ((CheckBox)row.FindControl("ck")).Checked;
if (result)
{
if (!(arrayList.Contains(index)))
{
arrayList.Add(index);
}
}
}
if (arrayList != null && arrayList.Count > 0)
{
Session["Choice"] = arrayList;
}
}

//还原选中的checkbox
private void RevertChoiceSelectedCheckBox()
{
ArrayList arrays = (ArrayList)Session["Choice"]; //获得选中checkbox行Id集合
if (arrays != null && arrays.Count > 0)
{
foreach (GridViewRow row in GridView1.Rows)
{
int index = (int)GridView1.DataKeys[row.RowIndex].Value;
if (arrays.Contains(index))
{
((CheckBox)row.FindControl("ck")).Checked = true;
}
}
}
}



或者
分页的时候将选中的项目ID存到隐藏与里面
反回点的时候 行绑定 将隐藏于中包含ID的checkbox选中
shiyuyao1987 2010-06-21
  • 打赏
  • 举报
回复
只能先把上一页选中的记录记录下来
下次点回来的时候在根据记录的值选上
YISUKU_LEE 2010-06-21
  • 打赏
  • 举报
回复
Session or HiddenField
sprc_lcl 2010-06-21
  • 打赏
  • 举报
回复
哪种都不能,你要自己写如点击其它页时把此页选上的存入session中,再回这一页的时候再赋上

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧