namespace hymnnews.webback.users
{
/// <summary>
/// editpower 的摘要说明。
/// </summary>
public class editpower : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button Button1;
config con=new config();
protected Microsoft.Web.UI.WebControls.TreeView TreeView1;
string sb="";
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if (!Page.IsPostBack)
{
getusertype();
try
{
con.open();
//添加命令,从数据库中得到数据
SqlDataAdapter adp = new SqlDataAdapter("select * from tbTree",con.myConnection);
DataSet ds=new DataSet();
adp.Fill(ds);
this.ViewState["ds"]=ds;
}
catch (Exception ex)
{
throw (ex);
}
finally
{
con.Close();
}
//调用递归函数,完成树形结构的生成
AddTree(0, (TreeNode)null);
}
// TreeView1.AutoPostBack=true;
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Button1.Click += new System.EventHandler(this.Button1_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
private void getusertype()
{
string rt="";
string sql;
SqlCommand command;
SqlDataReader read;
con.open();
sql="select * from users where id="+Request["id"];
command=new SqlCommand(sql,con.myConnection);
read=command.ExecuteReader();
if(read.Read())
{
rt=read.GetValue(4).ToString();
}
con.Close();
if (rt.Equals("超级"))
{
Response.Write ("<script>alert('超级用户权限不可更改!');window.close();</script>");
}
}
private string getuserpower()
{
string rt="";
string sql;
SqlCommand command;
SqlDataReader read;
con.open();
sql="select * from users where id="+Request["id"];
command=new SqlCommand(sql,con.myConnection);
read=command.ExecuteReader();
if(read.Read())
{
rt=read.GetValue(5).ToString();
}
con.Close();
return rt;
}
public void AddTree(int ParentID,TreeNode pNode)
{
DataSet ds=(DataSet) this.ViewState["ds"];
DataView dvTree = new DataView(ds.Tables[0]);
//过滤ParentID,得到当前的所有子节点
dvTree.RowFilter = "[PARENTID] = " + ParentID;
foreach(DataRowView Row in dvTree)
{
TreeNode Node=new TreeNode() ;
if(pNode == null)
{ //添加根节点
Node.Text = Row["ConText"].ToString();
TreeView1.Nodes.Add(Node);
Node.Expanded=true;
AddTree(Int32.Parse(Row["ID"].ToString()), Node); //再次递归
}
else
{ //添加当前节点的子节点
Node.Text = Row["ConText"].ToString();
//Node.Target = mainFrame;
//Node.NavigateUrl = Row["url"].ToString();
Node.ID=Row["id"].ToString();
Node.CheckBox=true;
if (getuserpower().IndexOf(Row["id"].ToString())!=-1)
Node.Checked=true;
pNode.Nodes.Add(Node);
Node.Expanded = true;
AddTree(Int32.Parse(Row["ID"].ToString()),Node); //再次递归
}
}
}
private void Button1_Click(object sender, System.EventArgs e)
{
//Response.Write(GetAllNodeText(TreeView1.Nodes));
con.open();
string sql="update users set upower='"+GetAllNodeText(TreeView1.Nodes)+"' where id="+Request["id"];
SqlCommand myCommand = new SqlCommand(sql,con.myConnection);
myCommand.ExecuteNonQuery();
myCommand.Dispose();
con.Close();
//GetAllNodeText(TreeView1.Nodes);
Response.Write("<script>alert('用户权限修改成功!');</script>");
}
private string GetAllNodeText(TreeNodeCollection tnc)
{
//string s="xiaozhuang";
foreach(TreeNode node in tnc)
{
if(node.Nodes.Count!=0)
GetAllNodeText(node.Nodes);
if (node.Checked)
{
this.sb = this.sb + node.ID +",";
}
//Response.Write(node.Text + " ");
}
return this.sb;
}
private void TreeView1_SelectedIndexChange(object sender,Microsoft.Web.UI.WebControls.TreeViewClickEventArgs e)
{
Microsoft.Web.UI.WebControls.TreeNode NewNode=TreeView1.GetNodeFromIndex(TreeView1.SelectedNodeIndex);
//TreeView1.getTreeNode(TreeView1.clickedNodeIndex);
TreeNode pnode=NewNode;
if(NewNode.Parent is TreeNode)
pnode=(TreeNode)NewNode.Parent;
if (NewNode.Checked)
pnode.Checked=true;
else
pnode.Checked=false;
Response.Write(pnode.Text);
}
}
}