DataGrid中跨页面实现多选,在哪里保存选中值???

问题描述

我使用存储过程进行分页,想用ViewState来保存DataGrid自定义模板列中checkbox跨页的选中值,但没想出来在什么地方保存checkbox的选中值。选择完点“下一页”或“上一页”后,Page_Load都显示的是DataGrid另一页面的数据,还没等我选中checkbox就已经提交了,怎么能取到值呢?(不要说孟子的例子,他用的DataGrid自带的分页,有DataGrid1_PageIndexChanged事件,我这里没有)下面有几个写好的方法,但不知道在哪里调用SaveCheckedItems()方法,Page_Load里面好象不大行,就是这一点没想出来。。。。----------------------------------//获取(创建)保存选中状态的集合ArrayListCheckedItemCollection{get{if(ViewState["CheckedItems"]==null)ViewState["CheckedItems"]=newArrayList();returnViewState["CheckedItems"]asArrayList;}}//加入项privatevoidAddCheckedItem(intkey){ArrayListal=CheckedItemCollection;if(!al.Contains(key))al.Add(key);}//移除项privatevoidRemoveCheckedItem(intkey){ArrayListal=CheckedItemCollection;if(al.Contains(key))al.Remove(key);}/*每次翻页时,需要保存页面勾选状态。*操作逻辑:*对于选中项,将ID存入状态集合*对于未选中项,如果此项ID在集合中存在,则删除。*/privatevoidSaveCheckedItems(){for(inti=0;i<DataGrid1.Items.Count;i++){CheckBoxcb=DataGrid1.Items[i].Cells[0].FindControl("CheckBox1")asCheckBox;if(cb!=null){intkey=Convert.ToInt32(DataGrid1.Items[i].Cells[1].Text);if(cb.Checked)this.AddCheckedItem(key);elsethis.RemoveCheckedItem(key);}}}/*每次DataGrid绑定后,*需要通过此方法从状态集合中装载勾选状态。*/voidLoadCheckedState(){ArrayListal=CheckedItemCollection;for(inti=0;i<DataGrid1.Items.Count;i++){CheckBoxcb=DataGrid1.Items[i].Cells[0].FindControl("CheckBox1")asCheckBox;if(cb!=null){intkey=Convert.ToInt32(DataGrid1.Items[i].Cells[1].Text);if(al.Contains(key))cb.Checked=true;}}}

解决方案

解决方案二:
有没有人知道???难道一定要用DataGrid自带的分页(DataGrid1_PageIndexChanged)。
解决方案三:
看来大家都不会。
解决方案四:
overrideOnPreRender(...)//把LoadCheckedState放在这里边试试。{LoadCheckedState();}
解决方案五:
overrideOnLoad(...)//没绑定前记住所有checked的keys.{SaveCheckedItems();base.OnLoad(...);}overrideOnPreRender(...)//把LoadCheckedState放在这里边试试。绑定后,还原check.{LoadCheckedState();base.OnPreRender(...);}
解决方案六:
OnLoad(...)、OnPreRender(...)方法的返回类型是什么???
解决方案七:
mark
解决方案八:
用session操作完了,再清除session

时间: 2024-09-20 09:02:04

DataGrid中跨页面实现多选,在哪里保存选中值???的相关文章

EXT.NET+MVC4页面提交,RadioGroup组如何获取选中值

问题描述 EXT.NET+MVC4页面提交,RadioGroup组如何获取选中值Html.X().FieldSet().ID("txtArrange").Cls("bordernone").Items(Html.X().RadioGroup().FieldLabel("是否派单").Items(Html.X().Radio().ID("ArrangeY").BoxLabel("是").Value("

在ASP.NET中跨页面实现多选

asp.net|页面 本文介绍如何在ASP.NET中实现多页面选择的问题.其具体思路很简单:用隐藏的INPUT记住每次选择的项目,在进行数据绑定时,检查保存的值,再在DataGrid中进行选中显示.下面时完整的代码和例子: 查看例子 SelectMultiPages.aspx <%@ Page EnableViewState="true" CodeBehind="SelectMultiPages.aspx.cs" Language="c#"

在struts2的action类中获取ognl表达式中的多选框中被选中值

问题描述 xml配置信息<packagename="employee"namespace="/emp"extends="struts-default"><actionname="empAddSave"class="com.tfsoftware.struts2employee.EmpAddSave"method="execute"><resultname=&q

dataGrid在页面拖动行(在表头,用htc文件实现)

datagrid|htc|页面 #region 声明//----------------------------------------------------------------------//// 修改: 李淼(Nick.Lee)//// dataGrid在页面拖动行(在表头,用htc文件实现) // 时间:2005-04-23 // boyorgril@msn.com// boyorgril@hotmail.com// QQ:16503096//注意:引用请标明修改出处,谢谢//---

jsp页面的多选框传递

         在struts1中的项目中,jsp页面的多选框内容传递到下个页面,在碰到修改表信息(或用户信息时经常碰到),一开始不知道怎么实习这个功能,写了一大堆的js代码才勉强实现,其实在struts1的form中就有这个特性,只要两个页面传递过程中,传的是个form的话,就可用实现自动回填,就算有些多选框内容是从数据库中查出来的,页会自动把上个页面的值显示在第一个.

select多选下拉框的值通过jquery ajax 传值给其他php页面,老是传不过去,求帮助

问题描述 select多选下拉框的值通过jquery ajax 传值给其他php页面,老是传不过去,求帮助 请大大们来帮我看看. 接收传值的页面: <?php $cla=$_POST["cla"]; echo $cla; include_once("conn.php"); $sql="update class_string set class_string='$cla' where teacher='ma'"; $result = mysq

JS中跨页面调用变量和函数的方法(例如a.js 和 b.js中互相调用)_javascript技巧

在项目开发过程中,也许你会遇这样的情况. 在某一Js文件中需要完成某一功能,但这一功能的大部分代码在另外一个Js文件中已经完成了,自己只需要调用这个方法再加上几句代码就可以实现所需的功能. 我们知道,在html中,利用<script language="javascript" type="text/javascript" src="./script.js"></script>引入的两个js是不可以相互调用的.那么该如何解决

浅谈单页面赚钱之选词技巧

单页面赚钱教程一直是很多SEOR最爱的赚钱方式,原因无他,就是简单两个字.选好了词,做好了页面,做点小外链,就等排名上去,然后收钱.当然,收钱的多少,也看个人的努力和造化了.有的人做100个单页面,赚不到几毛钱;有的人做一个单页面,财源滚滚.之前我写过单页面赚钱一定要选好词,现在尚美绿色减肥网(www.111cn.net)来和大家分享一下单页面赚钱的选词技巧. 先说明一下,单页面赚钱有好几种方式,最主要的就是放GGAD和做淘宝客了.在此我先只分享单页面做GGAD怎么选关键词. 明确了单页面的目的

让DataGrid拥有单击回传事件并带回指定字段的值

datagrid 让DataGrid拥有单击回传事件并带回指定字段的值 在遇到主从表结构的时候,我们经常会有这样的需求 那就是用一个DataGrid来列出主表的信息,然后选中主表中的一条记录根据主外健的值让另外一个DataGrid来显示从表的信息.但是在DataGrid的事件中满足不了我们的需求,我们需要给DataGrid添加一个OnSelectPostBack事件,那么我们每选中一条主表记录就会引发一次回传,在事件里我们取到指定的数据源的指定字段的值,绑定从表的信息 让我们给我们得扩展Data