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

六子 2010-06-21 02:14:09
我的分页每条记录前都有一个复选框,用户想在第一页勾选几个再在第二页勾选几个可是回到第一页勾选的就不见了,我用的是数据库分页,请问用哪种分页能实现以上需求,希望能提供参考代码或思路~!QQQ
...全文
400 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用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中,再回这一页的时候再赋上
FineUI(开源版) 基于 ExtJS 的开源 ASP.NET 控件库。 FineUI的使命 创建 No JavaScript,No CSS,No UpdatePanel,No ViewState,No WebServices 的网站应用程序。 支持的浏览器 IE 8.0 、Chrome、Firefox、Opera、Safari bulid2014-09-09 v4.1.3 母版页支持。 增加新控件CPHConnector(ContentPlaceHolder)。 增加三个示例,演示布局、接口以及动态加载在母版页的运用: 杂项->母版页->树(布局)。 杂项->母版页->表格(布局、接口与动态加载)。 杂项->母版页->表格与表单(布局、接口与动态加载)。 修正UMEditor在从全屏恢复时滚动条消失的问题(Gnid-6187)。 窗体控件增强。 增加子窗体关闭后调用父页面JS函数的方法(txw999-6022)。分别为ActiveWindow和Window增加GetHideExecuteScriptReference方法。 增加示例:内联框架->新窗口选择省份(GetHideExecuteScriptReference)。 窗体的Width和Height属性更新为AJAX属性,可以在后台改变 修正在父页面弹出窗体时无法通过设置Title属性来改变标题的问题(舞柯庶-6031)。 更新示例:内联框架->回发父页面(改变属性或者注册脚本)。 HyperLinkField的DataNavigateUrlFieldsEncode属性已废除,请替换为UrlEncode属性。 为ControlBase增加Listeners属性,方便设置控件的客户端事件处理函数,同时更新如下示例: 表格控件->复选框列->全选复选框列(客户端实现)。 表格控件->杂项->右键菜单(全选复选框)。 杂项->自定义回发(__doPostBack)。 杂项->自定义回发(F.customEvent)。 杂项->文本框改变客户端事件。 修正行扩展列无法显示隐藏的问题(zy32002-6195)。 为Grid增加ShowPagingMessage,并更新示例:表格控件->分页与排序->数据库分页。 增加示例:导航控件->工具栏与菜单->内联菜单(HideOnClick)。 表格的PageIndex有效性检查,更新示例:表格控件->分页工具条->改变每页记录数。

62,244

社区成员

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

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

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

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