[原创]使用Microsoft.Web.UI.WebControls的iewc轻松解决权限树问题(无限级权限管理)4

Purview_User_Manage_Top.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;

namespace YljWeb._Admin.Purview_Manage
{
///

1<summary>   
2/// Purview_User_Manage_Top 的摘要说明。   
3/// </summary>

public class Purview_User_Manage_Top : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Label lbl_Select_Username;
protected System.Web.UI.WebControls.DropDownList ddl_username;

private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
this.ddl_username.Attributes.Add("onchange","javascript:self.location="?username="+this.options[this.selectedIndex].value");
if(!Page.IsPostBack)//该页是否是为响应客户端而产生的或者是否是首次访问,系统自动生成
{
DropBind();
}
if( Request["username"] != null)
{
Session["Purview_User_Username"] = Request["username"];
this.lbl_Select_Username.Text = Session["Purview_User_Username"].ToString();
this.ddl_username.SelectedValue = Session["Purview_User_Username"].ToString();
this.Response.Write("

  1<script language='\"javascript\"'>parent.location.reload();</"+"script>");   
  2}   
  3if( Session["Purview_User_Username"] != null)   
  4{   
  5this.lbl_Select_Username.Text = Session["Purview_User_Username"].ToString();   
  6this.ddl_username.SelectedValue = Session["Purview_User_Username"].ToString();   
  7}   
  8} 
  9
 10#region Web 窗体设计器生成的代码   
 11override protected void OnInit(EventArgs e)   
 12{   
 13//   
 14// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。   
 15//   
 16InitializeComponent();   
 17base.OnInit(e);   
 18}   
 19  
 20/// <summary>   
 21/// 设计器支持所需的方法 - 不要使用代码编辑器修改   
 22/// 此方法的内容。   
 23/// </summary>   
 24private void InitializeComponent()   
 25{   
 26this.Load += new System.EventHandler(this.Page_Load); 
 27
 28}   
 29#endregion   
 30private void DropBind()   
 31{   
 32string strSql = "Select * from AdminUser";   
 33DataSet myds1= new DataSet();   
 34myds1 = YljWeb.Classes.SqlConn.ExecuteSqlForDataSet(strSql);   
 35/////////////// 填充 搜索 中下拉列表 ///////////   
 36this.ddl_username.DataSource = myds1.Tables[0].DefaultView;   
 37this.ddl_username.DataTextField = "username";   
 38this.ddl_username.DataValueField = "username";   
 39this.ddl_username.DataBind();   
 40//////////////// 以下两条代码为什么会无效? 而在 News_Add.aspx 中却有效 ///////////////////////////////////////////   
 41this.ddl_username.Items.Add(new ListItem(" 请选择用户 ","0"));   
 42this.ddl_username.SelectedValue="0";   
 43} 
 44
 45}   
 46}   
 47
 48
 49Purview_User_Manage_Left.aspx:系统所有的权限(功能)树 
 50
 51using System;   
 52using System.Collections;   
 53using System.ComponentModel;   
 54using System.Data;   
 55using System.Drawing;   
 56using System.Web;   
 57using System.Web.SessionState;   
 58using System.Web.UI;   
 59using System.Web.UI.WebControls;   
 60using System.Web.UI.HtmlControls; 
 61
 62namespace YljWeb._Admin.Purview_Manage   
 63{   
 64/// <summary>   
 65/// Purview_User_Manage_Left 的摘要说明。   
 66/// </summary>   
 67public class Purview_User_Manage_Left : System.Web.UI.Page   
 68{   
 69protected Microsoft.Web.UI.WebControls.TreeView TreeViewAll;   
 70protected System.Web.UI.WebControls.Label lbl_Curnodeid;   
 71  
 72protected YljWeb.Classes.TreeControl tree=new YljWeb.Classes.TreeControl();   
 73  
 74private void Page_Load(object sender, System.EventArgs e)   
 75{   
 76// 在此处放置用户代码以初始化页面   
 77if(!Page.IsPostBack)//该页是否是为响应客户端而产生的或者是否是首次访问,系统自动生成   
 78{   
 79BindTreeViewAll();   
 80}   
 81} 
 82
 83#region Web 窗体设计器生成的代码   
 84override protected void OnInit(EventArgs e)   
 85{   
 86//   
 87// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。   
 88//   
 89InitializeComponent();   
 90base.OnInit(e);   
 91}   
 92  
 93/// <summary>   
 94/// 设计器支持所需的方法 - 不要使用代码编辑器修改   
 95/// 此方法的内容。   
 96/// </summary>   
 97private void InitializeComponent()   
 98{   
 99this.Load += new System.EventHandler(this.Page_Load); 
100
101}   
102#endregion   
103private void BindTreeViewAll()   
104{   
105string str_Sql="select * from Purview_All order by order_id";   
106if (YljWeb.Classes.SqlConn.IsExist(str_Sql)) // 遍历树   
107{   
108tree.BindTreeView1("nodeid","parentid","location","mytext",str_Sql,"middFrame","Purview_User_Manage_Midd.aspx",lbl_Curnodeid,TreeViewAll);   
109} 
110
111}   
112}   
113}   
114
115
116Purview_User_Manage_Midd.aspx:用户权限管理的操作部分 
117
118using System;   
119using System.Collections;   
120using System.ComponentModel;   
121using System.Data;   
122using System.Drawing;   
123using System.Web;   
124using System.Web.SessionState;   
125using System.Web.UI;   
126using System.Web.UI.WebControls;   
127using System.Web.UI.HtmlControls; 
128
129namespace YljWeb._Admin.Purview_Manage   
130{   
131/// <summary>   
132/// Purview_User_Manage_Midd 的摘要说明。   
133/// </summary>   
134public class Purview_User_Manage_Midd : System.Web.UI.Page   
135{   
136protected System.Web.UI.WebControls.Label lbl_select_node;   
137protected System.Web.UI.WebControls.Button btn_purview_add;   
138protected System.Web.UI.WebControls.Label lbl_purview_retract;   
139protected System.Web.UI.WebControls.Button btn_purview_retract;   
140protected string selusername;   
141private void Page_Load(object sender, System.EventArgs e)   
142{   
143// 在此处放置用户代码以初始化页面   
144if(Request["location"]!=null )   
145{   
146if( Session["Purview_User_Username"]!=null)   
147{   
148selusername = Session["Purview_User_Username"].ToString();   
149this.lbl_select_node.Text = Request["location"].ToString();   
150this.lbl_select_node.Visible = false;   
151this.btn_purview_add.Enabled = true;   
152if(Request["location"].ToString() != "0_1_")   
153{   
154Check_ParentNode_State();   
155}   
156}   
157else   
158{   
159this.ShowErrMsg("请先选择用户!");   
160}   
161}   
162if(Request["location2"]!=null && Session["Purview_User_Username"]!=null)   
163{   
164  
165if( Session["Purview_User_Username"]!=null)   
166{   
167this.lbl_purview_retract.Text = Request["location2"].ToString();   
168this.lbl_purview_retract.Visible = false;   
169this.btn_purview_retract.Enabled = true;   
170selusername = Session["Purview_User_Username"].ToString();   
171}   
172else   
173{   
174this.ShowErrMsg("请先选择用户!");   
175}   
176}   
177} 
178
179#region Web 窗体设计器生成的代码   
180override protected void OnInit(EventArgs e)   
181{   
182//   
183// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。   
184//   
185InitializeComponent();   
186base.OnInit(e);   
187}   
188  
189/// <summary>   
190/// 设计器支持所需的方法 - 不要使用代码编辑器修改   
191/// 此方法的内容。   
192/// </summary>   
193private void InitializeComponent()   
194{   
195this.btn_purview_add.Click += new System.EventHandler(this.btn_purview_add_Click);   
196this.btn_purview_retract.Click += new System.EventHandler(this.btn_purview_retract_Click);   
197this.Load += new System.EventHandler(this.Page_Load); 
198
199}   
200#endregion 
201
202private void btn_purview_retract_Click(object sender, System.EventArgs e)   
203{   
204string strSqlUpdate="Update Purview_User_Have set state = 0 where username='"+ selusername +"' and location like '"+ this.lbl_purview_retract.Text +"%'";   
205YljWeb.Classes.SqlConn.ExecuteSql(strSqlUpdate);   
206this.lbl_purview_retract.Text = "成功收回";   
207this.Response.Write("<script language=\"javascript\">parent.frames(\"rightFrame\").document.location.reload();</"+"script>");   
208Response.Write("<meta http-equiv=refresh content=0;url=Purview_User_Manage_Midd.aspx>");   
209} 
210
211private void btn_purview_add_Click(object sender, System.EventArgs e)   
212{   
213string strSqlUpdate="Update Purview_User_Have set state = 1 where username='"+ selusername +"' and location = '"+ this.lbl_select_node.Text +"'";   
214YljWeb.Classes.SqlConn.ExecuteSql(strSqlUpdate);   
215this.lbl_select_node.Text = "成功填加";   
216this.Response.Write("<script language=\"javascript\">parent.frames(\"rightFrame\").document.location.reload();</"+"script>");   
217Response.Write("<meta http-equiv=refresh content=0;url=Purview_User_Manage_Midd.aspx>");   
218}   
219private void Check_ParentNode_State()   
220{   
221string str_Sql="select parentid from Purview_User_Have where username='"+ selusername +"' and location = '"+ Request["location"].ToString() +"'";   
222DataSet ds = YljWeb.Classes.SqlConn.ExecuteSqlForDataSet(str_Sql);   
223DataRow dr = ds.Tables[0].Rows[0];   
224string str_parentid = dr[0].ToString();   
225string str_Sql2="select * from Purview_User_Have where username='"+ selusername +"' and location = '"+ str_parentid +"' and state = 1 ";   
226if( !YljWeb.Classes.SqlConn.IsExist(str_Sql2) )   
227{   
228this.ShowErrMsg("请先填加其上一级权限!");   
229this.lbl_select_node.Text = "";   
230this.btn_purview_add.Enabled = false;   
231}   
232}   
233/// <summary>   
234/// ////////////////////////////// 弹出消息框 ////////////////////////////////////////   
235/// </summary>   
236/// <param name="MsgStr"></param>   
237private void ShowErrMsg(string MsgStr)   
238{   
239this.Response.Write("<script language='javascript'>");   
240this.Response.Write("alert('" +MsgStr + "');");   
241this.Response.Write("</script>

");
}
}
}

Purview_User_Manage_Right.aspx:用户已经有的权限树

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;

namespace YljWeb._Admin.Purview_Manage
{
///

1<summary>   
2/// Purview_User_Manage_Right 的摘要说明。   
3/// </summary>

public class Purview_User_Manage_Right : System.Web.UI.Page
{
protected Microsoft.Web.UI.WebControls.TreeView TreeViewHave;
protected System.Web.UI.WebControls.Label lbl_Curnodeid;

protected YljWeb.Classes.TreeControl tree=new YljWeb.Classes.TreeControl();

private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if(!Page.IsPostBack)//该页是否是为响应客户端而产生的或者是否是首次访问,系统自动生成
{
if( Session["Purview_User_Username"] != null)
{
BindTreeViewHave();
}
else
{
this.lbl_Curnodeid.Visible = true;
this.lbl_Curnodeid.Text = "请选择用户!";
}
}
}

#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

///

1<summary>   
2/// 设计器支持所需的方法 - 不要使用代码编辑器修改   
3/// 此方法的内容。   
4/// </summary>

private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion
private void BindTreeViewHave()
{
string username = Session["Purview_User_Username"].ToString();
string str_Sql="select * from Purview_User_Have where username ='"+ username +"'and state = 1 order by order_id";
if (YljWeb.Classes.SqlConn.IsExist(str_Sql)) // 遍历树
{
tree.BindTreeView2("nodeid","parentid","location","mytext",str_Sql,"middFrame","Purview_User_Manage_Midd.aspx",lbl_Curnodeid,TreeViewHave);
}

}
}
}

Published At
Categories with Web编程
Tagged with
comments powered by Disqus