图书管理员datagird行里增加checkbox并根据相应的权限进行显示

 

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;

public partial class userManage : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        //判断用户的登录类型,是读者身份还是管理员身份
        if (Session["entryType"] != "reader")
        {
            //判断管理员是否登录
            if (Session["userName"] != null)             
            {
             
                    bindUerManage();
               
            }
            else
            {
                //返回到登录页面
                Response.Redirect("../entry.aspx");           
            }
        }
        else
        {
            Response.Write("<script>alert('您没有此权限');location='../index.aspx';</script>");
        }
      
       
    }

    public void bindUerManage()
    {
        //创建SQL语句,该语句查询管理员的权限信息
        string sql = "select * from tb_admSet";
        //调用公共类中的getDataset方法并将该方法返回的对象绑定到GridView控件上
        gvAdmSet.DataSource = dataOperate.getDataset(sql);
        //设置主键字段
        gvAdmSet.DataKeyNames=new string[] {"userName"};               
        gvAdmSet.DataBind();                                           
    }

    protected void gvAdmSet_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        //获取主键字段
        string userName = this.gvAdmSet.DataKeys[e.RowIndex].Value.ToString(); 
        //创建SQL语句,该语句用来删除指定的管理员
        string sql = "delete from tb_admSet where userName='" + userName + "'";
        //调用公共类中的execSQL方法执行SQL语句
        dataOperate.execSQL(sql);
        //重新绑定管理员信息
        bindUerManage();                                                      
    }

 

    protected void gvAdmSet_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        //判断是否是数据行
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            //获取管理员名称
            string userName = e.Row.Cells[0].Text;
            //判断管理员名称是否和管理员登录名相同
            if (userName.ToLower() == Session["userName"].ToString())
            {
                //设置删除按钮不可用
                e.Row.Cells[7].Enabled = false;
            }
            //创建SQL语句,该语句查询管理员权限信息
            string sqlSel = "select * from tb_admSet where userName='" + userName + "'";
            //调用公共类中的getRow方法并接收返回值
            SqlDataReader sdr=dataOperate.getRow(sqlSel);
            //读取一条记录
            sdr.Read();
            //判断管理员是否拥有系统设置权限
            if (dataOperate.isAdm(sdr["systemSet"].ToString()))
            {
                //获取系统设置复选框
                CheckBox ck = (CheckBox)e.Row.FindControl("ckboxSystemSet");
                //设置复选框为选中状态
                ck.Checked = true;
            }
            //判断管理员是否拥有读者管理权限
            if (dataOperate.isAdm(sdr["readerManage"].ToString()))
            {
                //获取读者管理复选框
                CheckBox ck = (CheckBox)e.Row.FindControl("ckboxReaderManage");
                //设置复选框为选中状态
                ck.Checked = true;
            }
            //判断管理员是否拥有图书管理权限
            if (dataOperate.isAdm(sdr["bookManage"].ToString()))
            {
                //获取图书管理复选框
                CheckBox ck = (CheckBox)e.Row.FindControl("ckboxBookManage");
                //设置复选框为选中状态
                ck.Checked = true;
            }
            //判断管理员是否拥有图书借阅权限
            if (dataOperate.isAdm(sdr["bookBorrow"].ToString()))
            {
                //获取图书借阅复选框
                CheckBox ck = (CheckBox)e.Row.FindControl("ckboxBookBorrow");
                //设置复选框为选中状态
                ck.Checked = true;
            }
            //判断管理员是否拥有图书查询权限
            if (dataOperate.isAdm(sdr["systemSearch"].ToString()))
            {
                //获取图书查询复选框
                CheckBox ck = (CheckBox)e.Row.FindControl("ckboxSystemSearch");
                //设置复选框为选中状态
                ck.Checked = true;
            }
                   
           
         
        }
    }
}

上述代码说明:因为上述代码要调用核心方法

    public static bool isAdm(string str)
    {
        //将字符串以“,”分隔填充到数组中
        string[] strAdm = str.Split(',');
        //遍历数组判断是否拥有“1”
        foreach (string admValue in strAdm)
        {
            if (admValue == "1")
            {
                return true;
                break;
            }
        }
        return false;
    }

而且要有一个数据库,数据库的一个表是这样的图书管理员datagird行里增加checkbox并根据相应的权限进行显示_第1张图片

展示的效果如下图:

图书管理员datagird行里增加checkbox并根据相应的权限进行显示_第2张图片
这样在protected void gvAdmSet_RowDataBound(object sender, GridViewRowEventArgs e)方法中重写就实现了上面有复选框选中与没选中的效果,这就是我们在做权限时经常要用的一个代码。

你可能感兴趣的:(图书管理员datagird行里增加checkbox并根据相应的权限进行显示)