//前台页面
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="myTest.aspx.cs"
Inherits="HealthWebSite.Admin.RoleFuncation" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<style type="text/css">
.btn_2k3
{
border: 1pt solid #A3BFE8;
border-collapse: collapse;
height: 25px;
width: 80px;
text-align: center;
filter: progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=#FFFFFF, EndColorStr=#9DBCEA);
}
.grdw
{
text-align: center;
}
.value
{
background-color: White;
text-align: left;
}
</style>
</head>
<body style="font-size: 12px">
<form id="form1" runat="server">
<div style="float: left; border: 1px solid #808080; width: 100%">
<div style="float: left; width: 100%;">
<asp:GridView ID="GridView2" runat="server" CellPadding="4" GridLines="None" AutoGenerateColumns="False"
Width="100%" DataKeyNames="" AllowPaging="True" PageSize="8" OnPageIndexChanging="GridView2_PageIndexChanging"
OnRowCommand="GridView2_RowCommand">
<RowStyle BackColor="#EFF3FB" CssClass="grdw" />
<Columns>
<asp:TemplateField HeaderText="所有角色" HeaderStyle-HorizontalAlign="Left">
<ItemTemplate>
<asp:Label ID="lblname" runat="server" Text='<%# Eval("rolename") %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="">
<ItemTemplate>
<asp:Button ID="btnxgqx" runat="server" Text="查看权限" CssClass="btn_2k3" CommandName='fenpei'
CommandArgument='<%# bind("RoleId") %>' />
</ItemTemplate>
</asp:TemplateField>
</Columns>
<FooterStyle Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#99CCFF" ForeColor="White" HorizontalAlign="Center" />
<SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
<HeaderStyle BackColor="#99CCFF" />
</asp:GridView>
</div>
<div style="text-align: right;width: 100%;">
<table>
<tr>
<td align="right">
角色名称:
</td>
<td class="value">
<asp:Label Visible="false" runat="server" ID="lblroleid"></asp:Label>
<asp:TextBox ID="txtrolename" runat="server" />
</td>
<td align="right">
<asp:Button ID="btnadd" runat="server" CssClass="btn_2k3" Text="添加" OnClick="btnadd_Click1" />
</td>
<td>
<asp:Button ID="btnupdate" runat="server" CssClass="btn_2k3" Text="修改" OnClick="btnupdate_Click" />
</td>
</tr>
</table>
</div>
</div>
<div style="float: left; border: 1px solid #808080; margin-top: 5px; width: 100%;">
<div style="float: left; width: 100%;">
<table style="width: 100%" cellpadding="0" cellspacing="0">
<tr>
<td style="background-color: #99CCFF; height: 25px; font-weight: bold;">
角色功能:<asp:Label runat="server" ID="lblrolenameupdate" />
<asp:Label runat="server" ID="lblroleidupdate" Visible="false" />
</td>
</tr>
<tr>
<td>
<asp:CheckBoxList ID="CheckBoxList1" runat="server" DataTextField="jurisdictionname"
DataValueField="jurisdictionid" RepeatDirection="Horizontal" RepeatColumns="4"
AutoPostBack="false" Width="100%" BorderStyle="Solid">
</asp:CheckBoxList>
</td>
</tr>
<tr>
<td align="right">
<asp:Button ID="btnquanxian" runat="server" CssClass="btn_2k3" Text="保存权限" OnClick="btnquanxian_Click" />
</td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
</div>
</div>
</form>
</body>
</html>
//后台:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Common;
using System.Data;
using Platform;
namespace HealthWebSite.Admin
{
public partial class test
{
protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostBack){
string sqlcheck = @"select jurisdictionid,jurisdictionname from web_functiontable";
CheckBoxList1.DataSource = Temp.Find(sqlcheck).Tables[0];//对checkboxlist控件进行数据绑定
CheckBoxList1.DataBind();
Chushihuarole();
}
}
/// <summary>
/// 初始化GridView控件
/// </summary>
public void Chushihuarole()
{
string sqlrole = @"select RoleId,rolename from web_roletable";
GridView2.DataSource = Temp.Find(sqlrole).Tables[0];
GridView2.DataBind();
}
/// <summary>
/// 添加
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnadd_Click1(object sender, EventArgs e)
{
if (txtrolename.Text.ToString() == "")
{
ClientScript.RegisterClientScriptBlock(GetType(), "OnLoad", "alert('角色名称不能为空');", true);
return;
}
string selsql = @"select * from web_roletable where rolename='" + txtrolename.Text.ToString().Trim() + "'";
DataSet selset = Temp.Find(selsql);
if (selset.Tables.Count > 0 && selset.Tables[0].Rows.Count > 0)
{
ClientScript.RegisterClientScriptBlock(GetType(), "OnLoad", "alert('角色名称已存在');", true);
return;
}
else
{
string addsql = @"insert into web_roletable(RoleId,rolename)
values('" + Guid.NewGuid().ToString().ToUpper() + "','" + txtrolename.Text.ToString() + "')";
int result = Temp.Update(addsql);
if (result > 0)
{
Response.Write("<script language='javascript'>alert('添加成功');window.location.href ='test.aspx';</script>");
}
}
}
/// <summary>
/// 修改
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnupdate_Click(object sender, EventArgs e)
{
if (txtrolename.Text.ToString() == "")
{
ClientScript.RegisterClientScriptBlock(GetType(), "OnLoad", "alert('角色名称不能为空');", true);
return;
}
if(lblroleid.Text.ToString()==""){
ClientScript.RegisterClientScriptBlock(GetType(), "OnLoad", "alert('选择要修改的角色');", true);
return;
}
string selsql = @"select * from web_roletable where rolename='" + txtrolename.Text.ToString().Trim() + "' and RoleId!='" + lblroleid.Text.ToString().ToUpper() + "'";
DataSet selset = Temp.Find(selsql);
if (selset.Tables.Count > 0 && selset.Tables[0].Rows.Count > 0)
{
ClientScript.RegisterClientScriptBlock(GetType(), "OnLoad", "alert('角色名称已存在');", true);
return;
}
else
{
string addsql = @"update web_roletable set rolename='" + txtrolename.Text.ToString().Trim() + "' where RoleId='" + lblroleid.Text.ToString().ToUpper() + "'";
int result = Temp.Update(addsql);
if (result > 0)
{
Response.Write("<script language='javascript'>alert('修改成功');window.location.href ='RoleFuncation.aspx';</script>");
}
}
}
/// <summary>
/// 分页
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void GridView2_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView2.PageIndex = e.NewPageIndex;
Chushihuarole();
}
/// <summary>
/// 操作
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void GridView2_RowCommand(object sender, GridViewCommandEventArgs e)
{
string RoleId = e.CommandArgument.ToString();
if(e.CommandName=="fenpei"){//当点击GridView中分配权限按钮的时候
for (int j = 0; j < CheckBoxList1.Items.Count; j++)//对checkboxlist中的所有数据项进行遍历
{
CheckBoxList1.Items[j].Selected = false;//把checkboxlist中的所有数据项都设置为非选中状态
}
//获取该角色的所有权限 循环找 有就复选框为打钩状态
//获取所有权限功能
string selectrole = @"select RoleId,rolename from web_roletable where RoleId='" + RoleId + "'";
DataSet selectroleset = Temp.Find(selectrole);
lblrolenameupdate.Text = selectroleset.Tables[0].Rows[0]["rolename"].ToString();
lblroleidupdate.Text = RoleId;
txtrolename.Text = selectroleset.Tables[0].Rows[0]["rolename"].ToString();
lblroleid.Text = RoleId;
string sqlfenpei = @" select rolefuncationid,RoleId,funcationid
from web_rolefuncation where RoleId='" + RoleId + "'";
DataSet setfenpei = Temp.Find(sqlfenpei);
if (setfenpei.Tables.Count > 0 && setfenpei.Tables[0].Rows.Count > 0)
{
// string sqlcheckbox = @"select jurisdictionid,jurisdictionname from web_functiontable";
// DataSet setcheckbox = Temp.Find(sqlcheckbox);
foreach (DataRow row in setfenpei.Tables[0].Rows)
{
for (int j = 0; j < CheckBoxList1.Items.Count; j++)
{
if (CheckBoxList1.Items[j].Value == row["funcationid"].ToString())
{
CheckBoxList1.Items[j].Selected = true;//设置CheckboxList中的选项被选中
}
}
}
}
}
}
/// <summary>
/// 修改权限
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnquanxian_Click(object sender, EventArgs e)
{
//先删除所有权限然后 添加选择的权限
if (lblroleidupdate.Text.ToString()=="")
{
ClientScript.RegisterClientScriptBlock(GetType(), "OnLoad", "alert('选择要分配权限的角色');", true);
return;
}
string delcheck = @"delete from web_rolefuncation where RoleId='" + lblroleidupdate.Text.ToString().ToUpper() + "'";
int jiegou = 0;
int result = Temp.Update(delcheck);
for (int j = 0; j < CheckBoxList1.Items.Count;j++ )//遍历checkboxlist中的所有数据项
{
//打钩的复选框,取到复选框选中的数据
if (CheckBoxList1.Items[j].Selected)//如果取到的数据是被选中的话
{
string addsql = @"insert into web_rolefuncation(rolefuncationid,RoleId,funcationid)
values('" + Guid.NewGuid().ToString().ToUpper() + "','" + lblroleidupdate.Text.ToString().ToUpper()
+ "','" + CheckBoxList1.Items[j].Value.ToUpper() + "')";//取到更新的sql语句
jiegou = Temp.Update(addsql);//进行更新操作
}
}
if (jiegou>0)//如果更新的语句条数大于0条,则给出分配成功的提示
{
Response.Write("<script language='javascript'>alert('分配权限成功');window.location.href ='RoleFuncation.aspx';</script>");
}
}
}
}