• 关于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;
                    }
        }
      }
  • 相关阅读:
    C#编写的windows程序随系统启动
    CentOS 6.0修改ssh远程连接端口
    C# 控件缩写大全+命名规范+示例
    记录点滴
    C++封装,继承,多态,友元
    策略模式
    OpenGL入门
    C++四种类型转换
    观察者模式Observer Pattern
    双向链表std::list和单向链表std::forward_list
  • 原文地址:https://www.cnblogs.com/jsping/p/2509687.html
Copyright © 2020-2023  润新知