asp.net 翻页时用ViewState保存上一页checkbox勾选的值
/// <summary>
/// checkbox勾选取消勾选事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void checkboxl_OnCheckedChanged(Object sender, EventArgs e)
{
string tempValue = string.Empty;//拼接联合主键的临时变量
var checkbox = sender as CheckBox;
GridViewRow row = (GridViewRow)checkbox.NamingContainer;//获取行属性
Label lbSNo = (Label)row.FindControl("SNo");
Label lbItemNo = (Label)row.FindControl("ItemNo");
if (checkbox.Checked)//勾选
{
ViewState["retuvalue"] += lbSNo.Text.ToString() + "," + lbItemNo.Text + ";";
}
else//取消勾选
{
//当取消勾选时,将ViewState["retuvalue"]转成集合,去移除ViewState["retuvalue"]中的项
List<string> templist = ViewState["retuvalue"].ToString().TrimEnd(';').Split(';').ToList();
for (int i = 0; i < templist.Count; i++)
{
if (templist[i].ToString() == lbSNo.Text.ToString() + "," + lbItemNo.Text)
{
templist.Remove(templist[i]);
i--;
continue;
}
tempValue += templist[i] + ";";//再次拼接
}
ViewState["retuvalue"] = tempValue;
}
}
//航绑定事件
protected void gvData_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (ViewState["retuvalue"] != null)
if (e.Row.RowType == DataControlRowType.DataRow)
{
CheckBox check = (CheckBox)e.Row.Cells[10].FindControl("checkboxl");
//拿到两个主键拼接到string中
Label lbSNo = (Label)e.Row.FindControl("SNo");
Label lbItemNo = (Label)e.Row.FindControl("ItemNo");
if (ViewState["retuvalue"].ToString().TrimEnd(';').Contains(lbSNo.Text.ToString() + "," + lbItemNo.Text))
{
check.Checked = true;
}
}
}
动态绑定grid 记录
#region 动态绑定gridview
gvData.Columns.Clear();//先清空gridview
gvData.AutoGenerateColumns = false;
gvData.DataSource = dtData;
//gvData.DataKeys = new string[] { strDataKey };
for (int i = 0; i < dtData.Columns.Count; i++)
{
BoundField bfColumn = new BoundField();//用于动态绑定中为本显示的字段
bfColumn.DataField = dtData.Columns[i].ColumnName;//字段
bfColumn.SortExpression = dtData.Columns[i].ColumnName;
bfColumn.ItemStyle.HorizontalAlign = HorizontalAlign.Center;
bfColumn.HeaderText = dtData.Columns[i].Caption;//绑定列的标题
bfColumn.HtmlEncode = false;
gvData.Columns.Add(bfColumn);
}
gvData.DataBind();
#endregion
asp.net 翻页时用ViewState保存上一页checkbox勾选的值的更多相关文章
- 高并发分布式系统中生成全局唯一(订单号)Id js返回上一页并刷新、返回上一页、自动刷新页面 父页面操作嵌套iframe子页面的HTML标签元素 .net判断System.Data.DataRow中是否包含某列 .Net使用system.Security.Cryptography.RNGCryptoServiceProvider类与System.Random类生成随机数
高并发分布式系统中生成全局唯一(订单号)Id 1.GUID数据因毫无规律可言造成索引效率低下,影响了系统的性能,那么通过组合的方式,保留GUID的10个字节,用另6个字节表示GUID生成的时间(D ...
- asp.net页面后退,重复弹出上一页对话框处理办法
我们在实例中,虽然页面内有导航,但是用户使用的时候难免会使用浏览器的后退按钮. 时常会发现,当后退的时候,上一页的对话框会自动弹出,下面是解决办法. 问题:使用此js代码,后退按钮时,重复显示对话框内 ...
- C# 翻页设计:首页,上一页,下一页,末页 ,跳转
int pageSize = 0; //每页显示行数 int nMax = 0; //总记录数 int pageCount = 0; //页数=总记录数/每页显示行数 int pageCurrent ...
- js返回上一页并刷新、返回上一页、自动刷新页面
一.返回上一页并刷新 <a href="javascript:" onclick="self.location=document.referrer;"&g ...
- 问题: 在使用thinkphp自带分页类时,在设置尾页显示的最后一页时,用setConfig(“last”,”尾页”)来设置样式,发现无效。
分析: 在分页类(/ThinkPHP/Library/Think/Page.class.PHP)里面有一个共有属性: public $lastSuffix = true; // 最后一页是否显示总页数 ...
- 记:ASP.NET Core开发时部署到IIS上出现HTTP Error 502.5 - Process Failure的解决方案
HTTP Error 502.5 - Process Failure Common causes of this issue: The application process failed to st ...
- element checkbox 勾选时出现弹框提示。
复选框选中的时候,必须提示是否确定选中,取消勾选的时候也要. 不能解决的思路: 1.element的checkbox只有一个change事件,该事件只返回该选项最新的值(true,false)(不会返 ...
- jq:翻页时,保存上页多选框checkbox选中状态
这里主要讲一种:中间的 checkbox 是 通过Ajax调出的. 则翻页时,为了保存上页的选定状态,可在页面中定义一个变量,用来存储选中状态的值. <input class="cli ...
- Ext grid checkbox 分页 翻页 勾选 问题
timeArray = new Array(); //临时数组变量 var timeStatusBar = new Ext.ux.StatusBar({ id: 'statusbar', defaul ...
随机推荐
- 【NOIP 2011】Mayan游戏(搜索+模拟)
描述 Mayan puzzle是最近流行起来的一个游戏.游戏界面是一个7行5列的棋盘,上面堆放着一些方块,方块不能悬空堆放,即方块必须放在最下面一行,或者放在其他方块之上.**游戏通关是指在规定的步数 ...
- Boost lockfree deque 生产者与消费者多对多线程应用
boost库中有一个boost::lockfree::queue类型的 队列,对于一般的需要队列的程序,其效率都算不错的了,下面使用一个用例来说明. 程序是一个典型的生产者与消费者的关系,都可以使用多 ...
- 快速找出故障机器(single number)
简单起见,假设每个机器存储一个标号为ID的记录(ID是小于十亿的整数),假设每份数据都保存两个备份,这样就有两个机器储存了同样的数据. 1.在某个时间,如果得到一个数据文件ID的列表,是否能够快速地找 ...
- Vue-Router路由Vue-CLI脚手架和模块化开发 之 路由的动态跳转
在上一篇的博文中,实现的跳转是在页面中进行实现的 利用vue-router实例方法,使用js对路由进行动态跳转: 1.router.push:参数为路由对象,跳转到指定路由,跳转后会产生历史记录: & ...
- 小聊outline和border
border与outline: border属性: border-width.border-style.border-color 其中border-style可以为none或hidden outlin ...
- [Leetcode]014. Longest Common Prefix
public class Solution { public String longestCommonPrefix(String[] strs) { if(strs == null || strs.l ...
- msyql操作100题
1.1.1 开启MySQL服务 /etc/init.d/mysqld start 使用/etc/init.d/mysqld start命令启动数据库的本质就相当于执行mysqld_safe --use ...
- 支付宝支付集成中:refund_fastpay_by_platform_nopwd接口服务器通知验签不通过
在做p2p配资平台,也就是公司的项目,遇到了一个问题:refund_fastpay_by_platform_nopwd接口服务器通知验签不通过 下面是实录: 通知服务器的POST过来的数据: 1.si ...
- Java类名 方法名 常量 变量的命名习惯
1.包 用于将完成不同功能的类分门别类,放在不同的目录(包)下,包的命名规则:将公司域名反转作为包名,对于包名,每个字母都需要小写. 如果定义类的时候没有使用package(包),那么java就认为我 ...
- Vue.js-----轻量高效的MVVM框架(十、父子组件通信)
#1.父链 html: <h3>#父链</h3> <div> <div>子组件可以用 this.$parent 访问它的父组件.根实例的后代可以用 th ...