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;
                    }
        }
      }
  • 相关阅读:
    第六章 编译并运行程序
    第五章 顺序型编程进阶
    第四章 异常
    第三章 顺序型编程
    TCP和UDP的区别和优缺点
    Java UDP Socket编程
    springboot 学习资源推荐
    springboot集成redis
    微信公众号的SpringBoot+Quartz的定时任务Demo
    远程桌面发生身份验证错误,要求的函数不受支持【WIN10家庭】或【专业版】--解决办法
  • 原文地址:https://www.cnblogs.com/jsping/p/2509687.html
Copyright © 2011-2022 走看看