zoukankan      html  css  js  c++  java
  • 关于GridView的模板列中有CheckBox的分页显示问题

    最近在做一个项目,里面涉及到Admin对用户的权限进行设定,然后把CheckBox的状态(0未选中,1选中)保存到数据库中。那么当权限设置完并保存成功后,点击该页面,页面初始化的时候根据 数据库中状态字段显示出所有CheckBox的状态,这样操作在不分页的时候是没有问题的,当数据很多,需要进行分页时,问题就出来了:无论点击那一页,页面现实的CheckBox的状态始终和第一页显示的一样,不发生变化,具体的页面我现在没法恢复了,我现在只有正确的页面如下,网上的办法是记忆每一页CheckBox的状态信息,我试了,感觉方法不好。我自己用另外一种方法实现了,作为今天的总结:

    第一页如图1-1

                                                      图1-1

    刚开始显示的错误的页面我现在没法截取了,望谅解啊。错误的页面是所有CheckBox和图1-1的所有CheckBox的状态相同。

    第二页的正确效果如图1-2:

                                    图1-2

    在每一个CheckBox的旁边放一个Label,用于绑定数据库中对应的字段(0或1),在GridView的DataBind方法中循环判断Label的Text,若Label.Text==“1”,则CheckBox选中,否则不选中。,就这么简单,部分代码如下:
    DataTable T_UserSeniority = UserSeniorityCLBase.GetAll();
            for (int i = 0; i < gvSeniority.Rows.Count; i++)
            {
                if (i < T_UserSeniority.Rows.Count)
                {
          //int UserID = Convert.ToInt32(gvSeniority.DataKeys[i].Value.ToString());//获取主键值
                    CheckBox CBDesigner = gvSeniority.Rows[i].FindControl("CBDesigner") as CheckBox;   //设总
                    Label lblDesigner = gvSeniority.Rows[i].FindControl("lblDesigner") as Label;
                    if (lblDesigner.Text == "1")
                    {
                        CBDesigner.Checked = true;
                    }
                    else
                    {
                        CBDesigner.Checked = false;
                    }
                    CheckBox CBProfessionalPrincipal = gvSeniority.Rows[i].FindControl("CBProfessionalPrincipal") as CheckBox;   //专业负责人
                    Label lblProfessionalPrincipal = gvSeniority.Rows[i].FindControl("lblProfessionalPrincipal") as Label;
                    if (lblProfessionalPrincipal.Text == "1")
                    {
                        CBProfessionalPrincipal.Checked = true;
                    }
                    else
                    {
                        CBProfessionalPrincipal.Checked = false;
                    }
        }
      }
  • 相关阅读:
    [转]几个开源的.net界面控件
    电脑上设置对眼睛友好的绿豆沙色
    [转] C# 绘制报表,使用Graphics.DrawString 方法
    Excel 绘制图表,如何显示横轴的数据范围
    [转] C#中绘制矢量图形
    Chapter 3 Protecting the Data(3):创建和使用数据库角色
    续x奇数倍(n+2*x)暴力算法是冠军的算法结合数量
    新秀学习SSH(十四)——Spring集装箱AOP其原理——动态代理
    中国是大数据的人工智能的发源地
    采用shell脚本统计代码的行数
  • 原文地址:https://www.cnblogs.com/jsping/p/2509687.html
Copyright © 2011-2022 走看看