📄 ruleauthority.aspx.cs
字号:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using gyit.Data;
using System.Configuration;
namespace itcrm.admin
{
/// <summary>
/// UserManager 的摘要说明。
/// Author: 何 朝 祥
/// Date; 2004.5.5
/// </summary>
public class RuleAuthority : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button btnDelete;
protected System.Web.UI.WebControls.Button btnAdd;
protected System.Web.UI.WebControls.ListBox lstMan;
protected System.Web.UI.WebControls.DataGrid DataGrid1;
protected System.Web.UI.WebControls.DataGrid DataGrid2;
protected System.Web.UI.WebControls.CheckBox CheckAll2;
protected System.Web.UI.WebControls.CheckBox CheckAll;
public DBOperator db;
private void Page_Load(object sender, System.EventArgs e)
{
DataGrid1.DataKeyField="MenuID";
DataGrid2.DataKeyField="AutoID";
db =DBOperator.CreateObject((string)ConfigurationSettings.AppSettings["DSN"]);
if (!Page.IsPostBack)
{
BindRole();
DataShow(lstMan.Items[0].Value);
}
}
//*********** 帮 定 用 户
public void BindRole()
{
DataSet ds=new DataSet();
string strSQL="select RoleID,RoleName from Role ";
db.Open();
ds=db.exeSqlForDataSet(strSQL);
db.Close();
lstMan.DataSource=ds.Tables[0].DefaultView;
lstMan.DataTextField=ds.Tables[0].Columns["RoleName"].ToString();
lstMan.DataValueField=ds.Tables[0].Columns["RoleID"].ToString();
lstMan.DataBind();
if(ds!=null)
ds.Dispose();
}
//********* 绑 定 角 色
private void DataShow(string who)
{
BindAllRule(who);
BindHavedRule(who);
}
//*********** 所有权限绑定
private void BindAllRule(string who)
{
string strSQL ="SELECT S.MenuID,S.NodeName FROM SysMenu S where S.MenuID not in (select MenuID FROM RoleRight where RoleID='"+who+"')";
//string strSQL="select ur.RuleID,ur.RuleName from UserRule ur case where ur.RuleID in(select RuleID from UserAuthority where UserID='"+who+"') state as 'a' or state as 'bb'";
db.Open();
DataGrid1.DataSource=db.exeSqlForDataSet(strSQL);
db.Close();
DataGrid1.DataBind();
DataGrid1.Dispose();
}
//******** 已有权限绑定
private void BindHavedRule(string who)
{
string strSQL ="SELECT S.MenuID,S.NodeName,R.RoleID,R.AutoID from SysMenu S,RoleRight R where S.MenuID in (select MenuID FROM RoleRight where RoleID='"+who+"') and R.MenuID=S.MenuID and R.RoleID='"+who+"'";
db.Open();
DataGrid2.DataSource=db.exeSqlForDataSet(strSQL);
db.Close();
DataGrid2.DataBind();
DataGrid2.Dispose();
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.lstMan.SelectedIndexChanged += new System.EventHandler(this.lstMan_SelectedIndexChanged);
this.CheckAll.CheckedChanged += new System.EventHandler(this.CheckAll_CheckedChanged);
this.CheckAll2.CheckedChanged += new System.EventHandler(this.CheckAll2_CheckedChanged);
this.btnAdd.Click += new System.EventHandler(this.btnAdd_Click);
this.btnDelete.Click += new System.EventHandler(this.btnDelete_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
//************* 添 加 或 删 除
public void UpdateUserAuthority(int intID)
{
bool IsChecked=false;
string strChk="Remove";
DataGrid tempDataGrid;
tempDataGrid=DataGrid1;
string[] strPara =new string[3];
object[] strValues=new object[3];
strPara[0]="@RoleID";
strPara[1]="@MenuID";
strPara[2]="@ID";
if (intID==2)
{
if(lstMan.SelectedIndex>-1)
{
tempDataGrid=DataGrid2;
strChk="CheckOne2";
string tempRuleID=lstMan.SelectedItem.Value;
strValues[0]=tempRuleID;
foreach(DataGridItem CheckBoxItem in tempDataGrid.Items)
{
IsChecked=((CheckBox)CheckBoxItem.FindControl(strChk)).Checked;
if (IsChecked)
{
strValues[1]=tempDataGrid.DataKeys[CheckBoxItem.ItemIndex].ToString();
strValues[2]=IsChecked.ToString().ToLower();
try
{
db.Open();
db.exeSql("delete from RoleRight where AutoID='"+strValues[1].ToString()+"'");
db.Close();
}
catch (System.Exception ee)
{
Response.Write ("<br>erro="+ee.Message);
}
}
}
}
}
else if(intID==1)
{
if(lstMan.SelectedIndex>-1)
{
string tempRuleID=lstMan.SelectedItem.Value;
strValues[0]=tempRuleID;
foreach(DataGridItem CheckBoxItem in tempDataGrid.Items)
{
IsChecked=((CheckBox)CheckBoxItem.FindControl(strChk)).Checked;
if (IsChecked)
{
strValues[1]=tempDataGrid.DataKeys[CheckBoxItem.ItemIndex].ToString();
strValues[2]=IsChecked.ToString().ToLower();
try
{
db.Open();
db.exeProc("Update_RoleRight",strPara,strValues);
db.Close();
}
catch (System.Exception ee)
{
Response.Write ("<br>erro="+ee.Message);
}
}
}
}
}
}
//********* 删除权限
private void btnDelete_Click(object sender, System.EventArgs e)
{
UpdateUserAuthority(2);
if(lstMan.SelectedIndex>-1)
{
DataShow(lstMan.SelectedItem.Value);
//CheckAll.Checked=false;
//CheckAll2.Checked=false;
}
}
//********* LisBox触发事件
private void lstMan_SelectedIndexChanged(object sender, System.EventArgs e)
{
if(lstMan.SelectedIndex>-1)
{
DataShow(lstMan.SelectedItem.Value);
//CheckAll.Checked=false;
//CheckAll2.Checked=false;
}
}
//******** 添加权限
private void btnAdd_Click(object sender, System.EventArgs e)
{
UpdateUserAuthority(1);
if(lstMan.SelectedIndex>-1)
{
DataShow(lstMan.SelectedItem.Value);
//CheckAll.Checked=false;
//CheckAll2.Checked=false;
}
}
//********* CheckBox 全选
private void CheckAll_CheckedChanged(object sender, System.EventArgs e)
{
if(CheckAll.Checked==true)
{
foreach(DataGridItem CheckBoxItem in DataGrid1.Items)
{
((CheckBox)CheckBoxItem.FindControl("Remove")).Checked=true;
}
}
if(CheckAll.Checked==false)
{
foreach(DataGridItem CheckBoxItem in DataGrid1.Items)
{
((CheckBox)CheckBoxItem.FindControl("Remove")).Checked=false;
}
}
}
private void CheckAll2_CheckedChanged(object sender, System.EventArgs e)
{
if(CheckAll2.Checked==true)
{
foreach(DataGridItem CheckBoxItem in DataGrid2.Items)
{
((CheckBox)CheckBoxItem.FindControl("CheckOne2")).Checked=true;
}
}
if(CheckAll2.Checked==false)
{
foreach(DataGridItem CheckBoxItem in DataGrid2.Items)
{
((CheckBox)CheckBoxItem.FindControl("CheckOne2")).Checked=false;
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -