📄 rulemanager.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 System.Data.SqlClient;
using gyit.Data;
using System.Configuration;
namespace itcrm.admin
{
/// <summary>
/// RuleManager 的摘要说明。
/// </summary>
public class RuleManager : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button btnDelete;
protected System.Web.UI.WebControls.Button btnAdd;
protected System.Web.UI.WebControls.Panel Panel1;
protected System.Web.UI.WebControls.DataGrid DataGrid2;
protected System.Web.UI.WebControls.Panel Panel2;
protected System.Web.UI.WebControls.DataGrid DataGrid1;
protected System.Web.UI.WebControls.CheckBox CheckAll;
protected System.Web.UI.WebControls.CheckBox CheckAll2;
protected System.Web.UI.WebControls.ListBox libRule;
public DBOperator db;
private void Page_Load(object sender, System.EventArgs e)
{
DataGrid1.DataKeyField="RoleID";
DataGrid2.DataKeyField="AutoID";
db =DBOperator.CreateObject((string)ConfigurationSettings.AppSettings["DSN"]);
if(!IsPostBack)
{
//DataGrid1.DataKeyField="NodeID";
BindUser();
DataShow(libRule.Items[0].Value);
}
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.libRule.SelectedIndexChanged += new System.EventHandler(this.libRule_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
private void DataShow(string who)
{
BindAllRule(who);
BindHaveMenu(who);
}
//********所有权限
private void BindAllRule(string who)
{
string strSQL ="SELECT R.RoleID,RoleName FROM Role R where R.RoleID not in (select RoleID FROM UserRight where UserID='"+who+"')";
db.Open();
DataGrid1.DataSource=db.exeSqlForDataSet(strSQL);
db.Close();
DataGrid1.DataBind();
}
//*********** ListBox 绑 定a
private void BindUser()
{
string strSql="select UserID,UserName from Admin";
DataSet ds=null;
db.Open();
ds=db.exeSqlForDataSet(strSql);
db.Close();
libRule.DataSource=ds;
libRule.DataValueField="UserID";
libRule.DataTextField="UserName";
libRule.DataBind();
libRule.Dispose();
ds.Dispose();
}
//********** 已有权限
//已有角色
private void BindHaveMenu(string who)
{
string strSql="select R.RoleID,R.RoleName,AutoID,U.UserID,U.RoleID from Role R,UserRight U where R.RoleID in(select RoleID from UserRight where UserID='"+who+"')and U.RoleID=R.RoleID and U.UserID='"+who+"'";
DataSet ds=new DataSet();
db.Open();
ds=db.exeSqlForDataSet(strSql);
db.Close();
try
{
DataGrid2.DataSource=ds;
DataGrid2.DataBind();
}
catch(System.Exception ee)
{
Page.Response.Write("<br>"+ee.Message);
}
if(ds!=null)
DataGrid2.Dispose();
DataGrid2.Dispose();
}
//********** 更新权限
public void UpdateRuleAuthority(int intID)
{
bool IsChecked=false;
string strChk="CheckOne";
DataGrid tempDataGrid;
tempDataGrid=DataGrid1;
if (intID==2)
{
tempDataGrid=DataGrid2;
strChk="CheckOne2";
}
if(libRule.SelectedIndex>-1)
{
string tempRuleID=libRule.SelectedItem.Value;
//Response.Write("str="+tempRuleID);
string[] strPara =new string[3];
object[] strValues=new object[3];
strPara[0]="@UserID";
strPara[1]="@RoleID";
strPara[2]="@ID";
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();
//Response.Write("<br>check="+IsChecked+"###"+strValues[1].ToString());
try
{
db.Open();
if (intID==2)
db.exeSql("delete from UserRight where AutoID='"+strValues[1].ToString()+"'");
else
db.exeProc("Update_UserRight",strPara,strValues);
db.Close();
}
catch (System.Exception ee)
{
Response.Write ("<br>erro="+ee.Message);
}
}
}
}
}
//*********** 添 加
private void btnAdd_Click(object sender, System.EventArgs e)
{
if(libRule.SelectedIndex>-1)
{
UpdateRuleAuthority(1);
DataShow(libRule.SelectedItem.Value);
CheckAll.Checked=false;
CheckAll2.Checked=false;
}
}
private void libRule_SelectedIndexChanged(object sender, System.EventArgs e)
{
DataShow(libRule.SelectedItem.Value);
}
//******** 删除授权
private void btnDelete_Click(object sender, System.EventArgs e)
{
if(libRule.SelectedIndex>-1)
{
UpdateRuleAuthority(2);
DataShow(libRule.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("CheckOne")).Checked=true;
}
}
if(CheckAll.Checked==false)
{
foreach(DataGridItem CheckBoxItem in DataGrid1.Items)
{
((CheckBox)CheckBoxItem.FindControl("CheckOne")).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 + -