/// <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勾选的值的更多相关文章

  1. 高并发分布式系统中生成全局唯一(订单号)Id js返回上一页并刷新、返回上一页、自动刷新页面 父页面操作嵌套iframe子页面的HTML标签元素 .net判断System.Data.DataRow中是否包含某列 .Net使用system.Security.Cryptography.RNGCryptoServiceProvider类与System.Random类生成随机数

    高并发分布式系统中生成全局唯一(订单号)Id   1.GUID数据因毫无规律可言造成索引效率低下,影响了系统的性能,那么通过组合的方式,保留GUID的10个字节,用另6个字节表示GUID生成的时间(D ...

  2. asp.net页面后退,重复弹出上一页对话框处理办法

    我们在实例中,虽然页面内有导航,但是用户使用的时候难免会使用浏览器的后退按钮. 时常会发现,当后退的时候,上一页的对话框会自动弹出,下面是解决办法. 问题:使用此js代码,后退按钮时,重复显示对话框内 ...

  3. C# 翻页设计:首页,上一页,下一页,末页 ,跳转

    int pageSize = 0; //每页显示行数 int nMax = 0; //总记录数 int pageCount = 0; //页数=总记录数/每页显示行数 int pageCurrent ...

  4. js返回上一页并刷新、返回上一页、自动刷新页面

    一.返回上一页并刷新 <a href="javascript:" onclick="self.location=document.referrer;"&g ...

  5. 问题: 在使用thinkphp自带分页类时,在设置尾页显示的最后一页时,用setConfig(“last”,”尾页”)来设置样式,发现无效。

    分析: 在分页类(/ThinkPHP/Library/Think/Page.class.PHP)里面有一个共有属性: public $lastSuffix = true; // 最后一页是否显示总页数 ...

  6. 记: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 ...

  7. element checkbox 勾选时出现弹框提示。

    复选框选中的时候,必须提示是否确定选中,取消勾选的时候也要. 不能解决的思路: 1.element的checkbox只有一个change事件,该事件只返回该选项最新的值(true,false)(不会返 ...

  8. jq:翻页时,保存上页多选框checkbox选中状态

    这里主要讲一种:中间的 checkbox 是 通过Ajax调出的. 则翻页时,为了保存上页的选定状态,可在页面中定义一个变量,用来存储选中状态的值. <input class="cli ...

  9. Ext grid checkbox 分页 翻页 勾选 问题

    timeArray = new Array(); //临时数组变量 var timeStatusBar = new Ext.ux.StatusBar({ id: 'statusbar', defaul ...

随机推荐

  1. web安全-接入层注入

    web安全-接入层注入 1.关系型数据库 mysql 存放结构化数据 高效操作大量数据 方便处理数据之间的关联关系 2.SQL注入 select * from table where id=${id} ...

  2. 13.Convert BST to Greater Tree(将树转为更大树)

    Level:   Easy 题目描述: Given a Binary Search Tree (BST), convert it to a Greater Tree such that every k ...

  3. nginx+uwsgi01---flask部署

    1.uwsgi.ini [uwsgi] # uwsgi 启动时所使用的地址与端口注意socket与http不同,http可以被外网访问0. socket = # 指向网站目录 chdir = /hom ...

  4. Xshell连接不上Ubuntu解决方式

    1—— 首先检查一下自己的网络是否正常,如果是插上网线就能用的,就很好:如果是校园网拨号方式上网的,请检查自己是否建立拨号连接. [编辑连接] [添加] PPPOE上网方式选择[DSL]   2—— ...

  5. Oracle 11G R2在用EXP 导出时,空表不能导出解决办法

    11G中有个新特性,当表无数据时,不分配segment,以节省空间 解决方法: 1.insert一行,再rollback就产生segment了. 该方法是在在空表中插入数据,再删除,则产生segmen ...

  6. vs如何在Windows身份验证下调试Web项目

    vs做的Web项目发布到IIS站点后,通常我们还希望利用vs来调试代码.如果Web在IIS中设置成了Windows身份验证,那么我们如何在vs调试的时候,也同样采用Windows身份认证进行调试呢? ...

  7. Luogu P2073 送花 set

    这题...一眼set...但是打了一会儿.. 记录一下每个价格对应的美丽度,顺便充当vis数组,如果美丽度不为0,说明set里已经有了... 删除好说,删*s.begin()和*--s.end()就好 ...

  8. 74th LeetCode Weekly Contest Number of Subarrays with Bounded Maximum

    We are given an array A of positive integers, and two positive integers L and R (L <= R). Return ...

  9. PHP7.1新特性一览

    PHP7.0的性能是PHP5.6的两倍 http://www.phpchina.com/article-40237-1.html 可空类型 list 的方括号简写 void 返回类型 类常量属性设定 ...

  10. TCP通讯模型简单示例

    1. TCP通讯模型 2. 服务器端 ① 创建socket,用函数socket() ② 绑定IP地址.端口号等信息到socket上,用函数bind() ③ 设置允许的最大连接数,用函数listen() ...