//显示 所有权限 并勾上该角色的权限
public partial class Default3 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.DropDownList1.DataSource = SQLHelper.SelectData("select * from [Role]");
this.DropDownList1.DataTextField = "R_Name";
this.DropDownList1.DataValueField = "R_ID";
this.DropDownList1.DataBind();
ydt = SQLHelper.SelectData("select M_ID from RoleMenuCenter where R_ID="+int.Parse(this.DropDownList1.SelectedValue.ToString()));
dt = SQLHelper.SelectData("select * from Menu");
inittreeview();
}
}
DataTable dt = null;
DataTable ydt = null;
public void inittreeview()
{
this.TreeView1.Nodes.Clear();
DataRow[] drs = dt.Select("M_Parent=0");
foreach (DataRow dr in drs)
{
TreeNode tn = new TreeNode();
tn.Text = dr["M_Name"].ToString();
tn.Value = dr["M_ID"].ToString();
foreach (DataRow ydr in ydt.Rows)
{
if (ydr["M_ID"].ToString().Trim() == dr["M_ID"].ToString().Trim())
{
tn.Checked = true;
break;
}
}
inittreeleaf(tn);
this.TreeView1.Nodes.Add(tn);
}
}
public void inittreeleaf(TreeNode tn)
{
DataRow[] drs = dt.Select("M_Parent="+tn.Value);
foreach (DataRow dr in drs)
{
TreeNode ctn = new TreeNode();
ctn.Text = dr["M_Name"].ToString();
ctn.Value = dr["M_ID"].ToString();
foreach (DataRow ydr in ydt.Rows)
{
if (ydr["M_ID"].ToString().Trim() == dr["M_ID"].ToString().Trim())
{
ctn.Checked = true;
break;
}
}
tn.ChildNodes.Add(ctn);
}
}
protected void Button1_Click(object sender, EventArgs e)
{
int roleid = int.Parse(this.DropDownList1.SelectedValue.ToString());
SQLHelper.UpdateData("delete from RoleMenuCenter where R_ID="+roleid);
foreach (TreeNode tn in this.TreeView1.Nodes)
{
if (tn.Checked)
{
int mid = int.Parse(tn.Value);
SQLHelper.UpdateData("insert into RoleMenuCenter values("+roleid+","+mid+",0,0,0,0)");
foreach (TreeNode ctn in tn.ChildNodes)
{
if (ctn.Checked)
{
int cmid = int.Parse(ctn.Value);
SQLHelper.UpdateData("insert into RoleMenuCenter values(" + roleid + "," + cmid + ",0,0,0,0)");
}
}
}
}
}
//角色改变 相应的权限也改变
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
ydt = SQLHelper.SelectData("select M_ID from RoleMenuCenter where R_ID=" + int.Parse(this.DropDownList1.SelectedValue.ToString()));
dt = SQLHelper.SelectData("select * from Menu");
inittreeview();
this.TreeView1.ExpandAll();
}
}
// JScript 文件
function public_GetParentByTagName(element, tagName)
{
var parent = element.parentNode;
var upperTagName = tagName.toUpperCase();
//如果这个元素还不是想要的tag就继续上溯
while (parent && (parent.tagName.toUpperCase() != upperTagName))
{
parent = parent.parentNode ? parent.parentNode : parent.parentElement;
}
return parent;
}
//设置节点的父节点Cheched——该节点可访问,则他的父节点也必能访问
function setParentChecked(objNode)
{
var objParentDiv = public_GetParentByTagName(objNode,"div");
if(objParentDiv==null || objParentDiv == "undefined")
{
return;
}
var objID = objParentDiv.getAttribute("ID");
objID = objID.substring(0,objID.indexOf("Nodes"));
objID = objID+"CheckBox";
var objParentCheckBox = document.getElementById(objID);
if(objParentCheckBox==null || objParentCheckBox == "undefined")
{
return;
}
if(objParentCheckBox.tagName!="INPUT" && objParentCheckBox.type == "checkbox")
return;
objParentCheckBox.checked = true;
setParentChecked(objParentCheckBox);
}
//设置节点的子节点uncheched——该节点不可访问,则他的子节点也不能访问
function setChildUnChecked(divID)
{
var objchild = divID.children;
var count = objchild.length;
for(var i=0;i<objchild.length;i++)
{
var tempObj = objchild[i];
if(tempObj.tagName=="INPUT" && tempObj.type == "checkbox")
{
tempObj.checked = false;
}
setChildUnChecked(tempObj);
}
}
//设置节点的子节点cheched——该节点可以访问,则他的子节点也都能访问
function setChildChecked(divID)
{
var objchild = divID.children;
var count = objchild.length;
for(var i=0;i<objchild.length;i++)
{
var tempObj = objchild[i];
if(tempObj.tagName=="INPUT" && tempObj.type == "checkbox")
{
tempObj.checked = true;
}
setChildChecked(tempObj);
}
}
//触发事件
function CheckEvent()
{
var objNode = event.srcElement;
if(objNode.tagName!="INPUT" || objNode.type!="checkbox")
return;
if(objNode.checked==true)
{
setParentChecked(objNode);
var objID = objNode.getAttribute("ID");
var objID = objID.substring(0,objID.indexOf("CheckBox"));
var objParentDiv = document.getElementById(objID+"Nodes");
if(objParentDiv==null || objParentDiv == "undefined")
{
return;
}
setChildChecked(objParentDiv);
}
else
{
var objID = objNode.getAttribute("ID");
var objID = objID.substring(0,objID.indexOf("CheckBox"));
var objParentDiv = document.getElementById(objID+"Nodes");
if(objParentDiv==null || objParentDiv == "undefined")
{
return;
}
setChildUnChecked(objParentDiv);
}
}
//修改权限
protected void Button1_Click(object sender, EventArgs e)
{
int roleid = int.Parse(this.DropDownList1.SelectedValue.ToString());
SQLHelper.UpdateData("delete from RoleMenuCenter where R_ID="+roleid);
foreach (TreeNode tn in this.TreeView1.Nodes)
{
if (tn.Checked)
{
int mid = int.Parse(tn.Value);
SQLHelper.UpdateData("insert into RoleMenuCenter values("+roleid+","+mid+",0,0,0,0)");
foreach (TreeNode ctn in tn.ChildNodes)
{
if (ctn.Checked)
{
int cmid = int.Parse(ctn.Value);
SQLHelper.UpdateData("insert into RoleMenuCenter values(" + roleid + "," + cmid + ",0,0,0,0)");
}
}
}
}
}