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

TreeControl.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 System.Text.RegularExpressions;
using System.IO;
using System.Text;
using System.Xml;
using Microsoft.Web.UI.WebControls;

namespace YljWeb.Classes
{
///

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

public class TreeControl
{
public DataTable dt;

public TreeControl()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
public void BindTreeView1(string f_key,string f_parentkey,string location,string f_text,string str_Sql,string Frame,string Url,Label lbl_Curnodeid,TreeView TreeView1)
{
DataSet ds = YljWeb.Classes.SqlConn.ExecuteSqlForDataSet(str_Sql);
dt = ds.Tables[0];
TreeView1.Nodes.Clear(); // 清空树
TreeNode rootnode=new TreeNode();
rootnode.Text=dt.Rows[0][f_text].ToString(); // 给节点绑定显示值
rootnode.NodeData=dt.Rows[0][f_key].ToString(); // 给节点绑定key值
lbl_Curnodeid.Text=dt.Rows[0][f_key].ToString(); // 保存选中key值
rootnode.Expanded=true; // 默认根结点为展开
rootnode.Target = Frame;
rootnode.NavigateUrl = Url+"?"+location+"=" + dt.Rows[0][location].ToString();
TreeView1.Nodes.Add(rootnode);
string parentid=dt.Rows[0][f_parentkey].ToString()+dt.Rows[0][f_key].ToString()+""; // 他子节点的parentid字段值
CreateNode1(f_key,f_parentkey,location,f_text,Frame,Url,parentid,rootnode);// 加入所有根结点以下的结点
}
public void BindTreeView2(string f_key,string f_parentkey,string location,string f_text,string str_Sql,string Frame,string Url,Label lbl_Curnodeid,TreeView TreeView1)
{
DataSet ds = YljWeb.Classes.SqlConn.ExecuteSqlForDataSet(str_Sql);
dt = ds.Tables[0];
TreeView1.Nodes.Clear(); // 清空树
TreeNode rootnode=new TreeNode();
rootnode.Text=dt.Rows[0][f_text].ToString(); // 给节点绑定显示值
rootnode.NodeData=dt.Rows[0][f_key].ToString(); // 给节点绑定key值
lbl_Curnodeid.Text=dt.Rows[0][f_key].ToString(); // 保存选中key值
rootnode.Expanded=true; // 默认根结点为展开
rootnode.Target = Frame;
rootnode.NavigateUrl = Url+"?location2=" + dt.Rows[0][location].ToString();
TreeView1.Nodes.Add(rootnode);
string parentid=dt.Rows[0][f_parentkey].ToString()+dt.Rows[0][f_key].ToString()+"
"; // 他子节点的parentid字段值
CreateNode2(f_key,f_parentkey,location,f_text,Frame,Url,parentid,rootnode);// 加入所有根结点以下的结点
}
public void CreateNode1(string f_key,string f_parentkey,string location,string f_text,string Frame,string Url,string parentid,TreeNode parentnode)
{
DataRow [] drs = dt.Select(f_parentkey +"= '" + parentid + "'");// 选出所有子节点
//遍历所有子节点
foreach( DataRow r in drs )
{
TreeNode tempnode = new TreeNode();
tempnode.Text = r[f_text].ToString();
tempnode.NodeData = r[f_key].ToString();
parentnode.Nodes.Add(tempnode);
tempnode.Expanded=true;
tempnode.Target = Frame;
tempnode.NavigateUrl = Url+"?"+location+"=" + r[location].ToString();
parentid=r[f_parentkey].ToString()+r[f_key].ToString()+"";
CreateNode1(f_key,f_parentkey,location,f_text,Frame,Url,parentid,tempnode);
}
}
public void CreateNode2(string f_key,string f_parentkey,string location,string f_text,string Frame,string Url,string parentid,TreeNode parentnode)
{
DataRow [] drs = dt.Select(f_parentkey +"= '" + parentid + "'");// 选出所有子节点
//遍历所有子节点
foreach( DataRow r in drs )
{
TreeNode tempnode = new TreeNode();
tempnode.Text = r[f_text].ToString();
tempnode.NodeData = r[f_key].ToString();
parentnode.Nodes.Add(tempnode);
tempnode.Expanded=true;
tempnode.Target = Frame;
tempnode.NavigateUrl = Url+"?location2=" + r[location].ToString();
parentid=r[f_parentkey].ToString()+r[f_key].ToString()+"
";
CreateNode2(f_key,f_parentkey,location,f_text,Frame,Url,parentid,tempnode);
}
}

public void BindTreeViewShow(string f_key,string f_parentkey,string location,string f_text,string str_Sql,Label lbl_Curnodeid,TreeView TreeView1)
{
DataSet ds = YljWeb.Classes.SqlConn.ExecuteSqlForDataSet(str_Sql);
dt = ds.Tables[0];
TreeView1.Nodes.Clear(); // 清空树
TreeNode rootnode = new TreeNode();
rootnode.Text = dt.Rows[0][f_text].ToString(); // 给节点绑定显示值
rootnode.NodeData = dt.Rows[0][f_key].ToString(); // 给节点绑定key值
// lbl_Curnodeid.Text = dt.Rows[0][f_key].ToString(); // 保存选中key值
rootnode.Expanded = true; // 默认根结点为展开
rootnode.NavigateUrl = "?"+location+"=" + dt.Rows[0][f_text].ToString();
TreeView1.Nodes.Add(rootnode);
string parentid=dt.Rows[0][f_parentkey].ToString()+dt.Rows[0][f_key].ToString()+""; // 他子节点的parentid字段值
CreateNodeShow(f_key,f_parentkey,location,f_text,parentid,rootnode);// 加入所有根结点以下的结点
}
public void CreateNodeShow(string f_key,string f_parentkey,string location,string f_text,string parentid,TreeNode parentnode)
{
DataRow [] drs = dt.Select(f_parentkey +"= '" + parentid + "'");// 选出所有子节点
//遍历所有子节点
foreach( DataRow r in drs )
{
TreeNode tempnode = new TreeNode();
tempnode.Text = r[f_text].ToString();
tempnode.NodeData = r[f_key].ToString();
parentnode.Nodes.Add(tempnode);
tempnode.Expanded=true;
tempnode.NavigateUrl = "?"+location+"=" + r[f_text].ToString();
parentid=r[f_parentkey].ToString()+r[f_key].ToString()+"
";
CreateNodeShow(f_key,f_parentkey,location,f_text,parentid,tempnode);
}
}
public string GetFirstStr(string strOriginal,string strSymbol)
{
int strPlace=strOriginal.IndexOf(strSymbol);
if (strPlace!=-1)
strOriginal=strOriginal.Substring(0,strPlace);
return strOriginal;
}
///

1<summary>   
2/// 获得某个字符串在另个字符串最后一次出现时后面所有字符   
3/// </summary>

///

1<param name="strOriginal"/>

要处理的字符
///

1<param name="strSymbol"/>

符号
///

1<returns>返回值</returns>

public string GetLastStr(string strOriginal,string strSymbol)
{
int strPlace=strOriginal.LastIndexOf(strSymbol)+strSymbol.Length;
strOriginal=strOriginal.Substring(strPlace);
return strOriginal;
}
///

1<summary>   
2/// 获得两个字符之间最后一次出现时的所有字符   
3/// </summary>

///

1<param name="strOriginal"/>

要处理的字符
///

1<param name="strFirst"/>

最前哪个字符
///

1<param name="strLast"/>

最后哪个字符
///

1<returns>返回值</returns>

public string GetTwoMiddleLastStr(string strOriginal,string strFirst,string strLast)
{
strOriginal=GetLastStr(strOriginal,strFirst);
strOriginal=GetFirstStr(strOriginal,strLast);
return strOriginal;
}

public void AddRootNode(string nodeid,string order_id,string parentid,string location,string text,string tablename,string MyText)
{
if( MyText !="" )
{
string str_Sql = "INSERT INTO "+ tablename +"("+ nodeid +","+ parentid +","+ location +","+ text +","+ order_id +") VALUES ('1','0_','0_1_','"+ MyText +"','0')";
YljWeb.Classes.SqlConn.ExecuteSql(str_Sql);
}
}
public void AddChildNode(string nodeid,string order_id,string parentid,string location,string text,string tablename,int Curnodeid,string MyText)
{
if( MyText !="" )
{
string str_MaxId =(int.Parse(YljWeb.Classes.SqlConn.GetMaxId("nodeid",tablename).ToString())+1).ToString();
int NewNodeId = int.Parse(str_MaxId);
string str_Sql="select * from "+tablename+" where "+ nodeid +"="+ Curnodeid;
DataSet ds = YljWeb.Classes.SqlConn.ExecuteSqlForDataSet(str_Sql);
DataRow dr = ds.Tables[0].Rows[0];
string str_ = dr[parentid]+ Curnodeid.ToString() +"";
string str_Location = str
+str_MaxId+"";
string str_Sql1 = "INSERT INTO "+ tablename +"("+ nodeid +","+ parentid +","+ location +","+ text +","+ order_id +") VALUES ("+ NewNodeId +",'"+ str
+"','"+ str_Location +"','"+ MyText +"',"+ NewNodeId +")";
YljWeb.Classes.SqlConn.ExecuteSql(str_Sql1);
}
}
public void AddChildNode2(string nodeid,string order_id,string parentid,string location,string text,string text2,string tablename,int Curnodeid,string MyText,string MyText2)
{
if( MyText !="" )
{
string str_MaxId =(int.Parse(YljWeb.Classes.SqlConn.GetMaxId("nodeid",tablename).ToString())+1).ToString();
int NewNodeId = int.Parse(str_MaxId);
string str_Sql="select * from "+tablename+" where "+ nodeid +"="+ Curnodeid;
DataSet ds = YljWeb.Classes.SqlConn.ExecuteSqlForDataSet(str_Sql);
DataRow dr = ds.Tables[0].Rows[0];
string str_ = dr[parentid]+ Curnodeid.ToString() +"";
string str_Location = str
+str_MaxId+"";
string str_Sql1 = "INSERT INTO "+ tablename +"("+ nodeid +","+ parentid +","+ location +","+ text +","+ text2 +","+ order_id +") VALUES ("+ NewNodeId +",'"+ str
+"','"+ str_Location +"','"+ MyText +"','"+ MyText2 +"',"+ NewNodeId +")";
YljWeb.Classes.SqlConn.ExecuteSql(str_Sql1);
}
}
public void AddBrotherNode(string nodeid,string order_id,string parentid,string location,string text,string tablename,int Curnodeid,string MyText)
{
if( MyText !="" )
{
string str_MaxId =(int.Parse(YljWeb.Classes.SqlConn.GetMaxId("nodeid",tablename).ToString())+1).ToString();
int NewNodeId = int.Parse(str_MaxId);
string str_Sql="select * from "+ tablename +" where "+ nodeid +"="+ Curnodeid;
DataSet ds = YljWeb.Classes.SqlConn.ExecuteSqlForDataSet(str_Sql);
DataRow dr = ds.Tables[0].Rows[0];
string str_ = dr[parentid].ToString();
string str_Location = str_+str_MaxId+"";
str_Sql = "INSERT INTO "+tablename+"("+ nodeid +","+ parentid +","+ location +","+ text +","+ order_id +") VALUES ("+ NewNodeId +",'"+ str
+"','"+ str_Location +"','"+ MyText +"',"+ NewNodeId +")";
YljWeb.Classes.SqlConn.ExecuteSql(str_Sql);
}
}
public void AddBrotherNode2(string nodeid,string order_id,string parentid,string location,string text,string text2,string tablename,int Curnodeid,string MyText,string MyText2)
{
if( MyText !="" )
{
string str_MaxId =(int.Parse(YljWeb.Classes.SqlConn.GetMaxId("nodeid",tablename).ToString())+1).ToString();
int NewNodeId = int.Parse(str_MaxId);
string str_Sql="select * from "+ tablename +" where "+ nodeid +"="+ Curnodeid;
DataSet ds = YljWeb.Classes.SqlConn.ExecuteSqlForDataSet(str_Sql);
DataRow dr = ds.Tables[0].Rows[0];
string str_ = dr[parentid].ToString();
string str_Location = str_+str_MaxId+"";
str_Sql = "INSERT INTO "+tablename+"("+ nodeid +","+ parentid +","+ location +","+ text +","+ text2 +","+ order_id +") VALUES ("+ NewNodeId +",'"+ str
+"','"+ str_Location +"','"+ MyText +"','"+ MyText2 +"',"+ NewNodeId +")";
YljWeb.Classes.SqlConn.ExecuteSql(str_Sql);
}
}
public void DelTreeViewNode(string nodeid,string parentid,string tablename,int Curnodeid)
{
string str_Sql="delete from "+tablename+" where "+nodeid+"="+ Curnodeid +" or "+ parentid +" like '%"+ Curnodeid +"%'";
YljWeb.Classes.SqlConn.ExecuteSql(str_Sql);
}
}
}

Purview_All_Left.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 Microsoft.Web.UI.WebControls;

namespace YljWeb._Admin.Purview_Manage
{
///

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

public class Purview_All_Left : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Label lbl_Curnodeid;
protected Microsoft.Web.UI.WebControls.TreeView TreeView1;
protected Microsoft.Web.UI.WebControls.TreeView Treeview1;
protected YljWeb.Classes.TreeControl tree=new YljWeb.Classes.TreeControl();

private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
string str_Sql="select * from Purview_All order by order_id";
if (YljWeb.Classes.SqlConn.IsExist(str_Sql)) // 遍历树
{
tree.BindTreeView1("nodeid","parentid","location","mytext",str_Sql,"mainFrame","Purview_All_Operate.aspx",lbl_Curnodeid,TreeView1);
}
}

#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 TreeView_Selected(object sender, Microsoft.Web.UI.WebControls.TreeViewSelectEventArgs e)
{
lbl_Curnodeid.Text = ((TreeNode)TreeView1.GetNodeFromIndex(e.NewNode)).NodeData;
}
}
}

Purview_All_Operate.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 Microsoft.Web.UI.WebControls;

namespace YljWeb._Admin.Purview_Manage
{
///

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

public class Purview_All_Operate : System.Web.UI.Page
{
protected System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator1;
protected System.Web.UI.WebControls.Button btn_AddChildNode;
protected System.Web.UI.WebControls.Button btn_AddBrotherNode;
protected System.Web.UI.WebControls.Button btn_DelNode;
protected System.Web.UI.WebControls.Button btn_AddRootNode;
protected System.Web.UI.WebControls.TextBox txt_Mytext;
protected System.Web.UI.WebControls.Label lbl_Error;

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

public static DataView dv1;//数据视图
public string str_Sql;
public string str_Location;
public string cru_location;
public int Curnodeid;
protected System.Web.UI.WebControls.TextBox Txt_Command;
protected System.Web.UI.WebControls.RequiredFieldValidator Requiredfieldvalidator2;
public string MyText;
protected System.Web.UI.WebControls.Label lbl_name;
protected System.Web.UI.WebControls.Label lbl_command;
protected System.Web.UI.WebControls.Button btn_CruNode_Modify;
public string MyText2;
public string cru_user;

private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面

btn_DelNode.Attributes.Add("onClick","javascript:return confirm('你确定要删除此结点及其子结点吗?')");
if (Request["location"]!=null)
{
str_Location=Request["location"].ToString().Substring(0,Request["location"].ToString().Length-1);
Curnodeid = int.Parse(tree.GetTwoMiddleLastStr(str_Location,"",""));
MyText = this.txt_Mytext.Text.Replace(" ","");
MyText2 = this.Txt_Command.Text.Replace(" ","");

//////////////// 通过用户的权限来控制按扭的属性 ////////////////////////////////////////////////
if ( Session["AdminName"] != null )
{
cru_user = Session["AdminName"].ToString();
}
else
{
cru_user = "------";/////// 只要该值在用户数据库中不存在就可以
}
if ( YljWeb.Classes.Purview.Purview_Verify(cru_user,"Purview_All_node_Del") )
{
this.btn_DelNode.Visible = true;
}
// else
// {
// this.ShowErrMsg("您没有权限删除!");
// }
/////////////////////////////////////////////////////////////////////////////////////////////////
this.btn_CruNode_Modify.Visible = true;
Get_CruNode_Info();
// BindGrid();
}
str_Sql="select * from Purview_All";
if (YljWeb.Classes.SqlConn.GetRowCount(str_Sql)>0) // 树表存在记录,做遍历操作
{
btn_AddRootNode.Visible=false;
}
else // 数表不存在记录,不做遍历操作
{
btn_DelNode.Visible=false;
btn_AddBrotherNode.Visible=false;
btn_AddChildNode.Visible=false;
}

}

#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.btn_AddRootNode.Click += new System.EventHandler(this.btn_AddRootNode_Click);
this.btn_AddChildNode.Click += new System.EventHandler(this.btn_AddChildNode_Click);
this.btn_AddBrotherNode.Click += new System.EventHandler(this.btn_AddBrotherNode_Click);
this.btn_DelNode.Click += new System.EventHandler(this.btn_DelNode_Click);
this.btn_CruNode_Modify.Click += new System.EventHandler(this.btn_CruNode_Modify_Click);
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion
private void Get_CruNode_Info()
{
cru_location = Request["location"].ToString();
string str_Sql = "Select * from Purview_All where location = '"+ cru_location +"' ";
DataSet ds1= new DataSet();
ds1 = YljWeb.Classes.SqlConn.ExecuteSqlForDataSet(str_Sql);
this.lbl_name.Text = ds1.Tables[0].Rows[0]["mytext"].ToString();
this.lbl_command.Text = ds1.Tables[0].Rows[0]["command_name"].ToString();
ds1.Dispose();
}
///

1<summary>   
2/// /////////   
3/// </summary>

// public void BindGrid()
// {
// str_Location = Request["location"].ToString();
// str_Sql="select * from Purview_All where parentid='"+ str_Location +"' order by order_id";
// ViewState["Sort"]="";
// DataSet myds1 = new DataSet();
// myds1 = YljWeb.Classes.SqlConn.ExecuteSqlForDataSet(str_Sql);//调用YljWeb.Classes.SqlConn.ExecuteSqlForDataSet
// dv1=myds1.Tables[0].DefaultView;
// dv1.Table.AcceptChanges();
// ////////////// dv1.Sort /////////////////////////////////////////////////////////////////////////
// if(!object.Equals(ViewState["Sort"],null))
// {
// dv1.Sort =ViewState["Sort"].ToString() ;
// }
//
// ViewState["PageDataCount"]=dv1.Count;//记录每页的数据条数
// if(dv1.Count==0)//判断所查询出来的数据中是否有记录
// {
// dv1.Dispose();
// }
// show_all.DataSource = dv1;//指定数据源
// show_all.DataBind();//控件绑定
// }
///

1<summary>   
2/// //////////   
3/// </summary>

///

1<param name="sender"/>

///

1<param name="e"/>

private void btn_AddChildNode_Click(object sender, System.EventArgs e)
{
if (Request["location"]==null) // 判断是否选择左边导航树导航
{
// this.ShowErrMsg("请选择左边导航树节点,再做添加操作!");
// string Str_Show = YljWeb.Classes.MyMethod.ShowErrMsg("请选择左边导航树节点,再做添加操作!");
this.Response.Write( YljWeb.Classes.MyMethod.ShowErrMsg("请选择左边导航树节点,再做添加操作!") );
return;
}
str_Sql="select * from Purview_All where command_name='"+ MyText2 +"'";
if ( YljWeb.Classes.SqlConn.IsExist(str_Sql) )
{
this.ShowErrMsg("对不起,已经存在此命令,请重新输入!");
return;
}
// 下面是增加子节点
tree.AddChildNode2("nodeid","order_id","parentid","location","mytext","command_name","Purview_All",Curnodeid,MyText,MyText2);
// 将最新加入的权限填加到Purview_User_Have预定义
Add_To_Purview_User_Have();
// 刷新左边树导航
lbl_Error.Text="

  1<script language='\"javascript\"'>parent.frames(\"leftFrame\").document.location.reload();</"+"script>"; 
  2
  3} 
  4
  5/// <summary>   
  6/// /////////   
  7/// </summary>   
  8/// <param name="sender"></param>   
  9/// <param name="e"></param>   
 10private void btn_AddBrotherNode_Click(object sender, System.EventArgs e)   
 11{   
 12if (Request["location"]==null) // 判断是否选择左边导航树导航   
 13{   
 14this.ShowErrMsg("请选择左边导航树节点,再做添加操作!");   
 15return;   
 16}   
 17string str_Sql="select * from Purview_All where nodeid="+ Curnodeid +"and parentid='0_' ";   
 18int count=int.Parse(YljWeb.Classes.SqlConn.GetRowCount(str_Sql).ToString());   
 19if ( count != 0 )   
 20{   
 21this.ShowErrMsg("不能给根节点增加兄弟节点,请增加子节点!"); // 判断不能给跟节点增加兄弟节点   
 22return;   
 23}   
 24str_Sql="select * from Purview_All where command_name='"+ MyText2 +"'";   
 25if ( YljWeb.Classes.SqlConn.IsExist(str_Sql) )   
 26{   
 27this.ShowErrMsg("对不起,已经存在此命令,请重新输入!");   
 28return;   
 29}   
 30// 下面是增加兄弟节点   
 31tree.AddBrotherNode2("nodeid","order_id","parentid","location","mytext","command_name","Purview_All",Curnodeid,MyText,MyText2); // 增加兄弟节点   
 32// 将最新加入的权限填加到Purview_User_Have预定义   
 33Add_To_Purview_User_Have();   
 34// 刷新左边树导航   
 35lbl_Error.Text="<script language=\"javascript\">parent.frames(\"leftFrame\").document.location.reload();</"+"script>"; 
 36
 37}   
 38public void Add_To_Purview_User_Have()   
 39{   
 40////// 查出所有用户   
 41string strSql_User = "Select * from AdminUser ";   
 42DataSet ds_user= new DataSet();   
 43ds_user = YljWeb.Classes.SqlConn.ExecuteSqlForDataSet(strSql_User);   
 44if ( ds_user.Tables[0].Rows.Count > 0 )   
 45{   
 46for ( int i = 0 ; i < ds_user.Tables[0].Rows.Count ; i ++ )   
 47{   
 48string strSql_Purview = "Select top 1 * from Purview_All order by nodeid desc";   
 49DataSet ds_purview= new DataSet();   
 50ds_purview = YljWeb.Classes.SqlConn.ExecuteSqlForDataSet(strSql_Purview); 
 51
 52/////// 组合用户权限列表的项 /////////////////////   
 53if ( ds_purview.Tables[0].Rows.Count > 0 )   
 54{   
 55for ( int j = 0 ; j < ds_purview.Tables[0].Rows.Count ; j ++ )   
 56{   
 57string username = ds_user.Tables[0].Rows[i]["username"].ToString().Trim();   
 58string nodeid = ds_purview.Tables[0].Rows[j]["nodeid"].ToString().Trim();   
 59string parentid = ds_purview.Tables[0].Rows[j]["parentid"].ToString().Trim();   
 60string mytext = ds_purview.Tables[0].Rows[j]["mytext"].ToString().Trim();   
 61string location = ds_purview.Tables[0].Rows[j]["location"].ToString().Trim();   
 62string command_name = ds_purview.Tables[0].Rows[j]["command_name"].ToString().Trim();   
 63string order_id = ds_purview.Tables[0].Rows[j]["order_id"].ToString().Trim();   
 64  
 65try   
 66{   
 67//////// 写入用户权限数据库 ///////////////////////////   
 68string strSql_Insert = "Insert into Purview_User_Have (username,nodeid,parentid,mytext,location,command_name,order_id,state) values('"+ username +"','"+ nodeid +"','"+ parentid +"','"+ mytext +"','"+ location +"','"+ command_name +"','"+ order_id +"',0)";   
 69YljWeb.Classes.SqlConn.ExecuteSql(strSql_Insert);   
 70}   
 71catch(Exception er)   
 72{   
 73this.ShowErrMsg(" Sorry! 用户权限初始化失败!原因是:"+ er.Message);   
 74}   
 75}   
 76}   
 77else   
 78{   
 79this.ShowErrMsg("对不起,系统功能列表为空,请先设置功能列表!2秒自动转到功能设置页面");   
 80}   
 81}   
 82////// 在这里是调用这个方法,所以最好不要出现以下提示   
 83// this.ShowErrMsg(" 提示:用户权限初始化成功!");   
 84}   
 85else   
 86{   
 87this.ShowErrMsg("对不起,暂时没有用户,请先填加用户!2秒自动转到填加用户页面");   
 88}   
 89}   
 90/// <summary>   
 91/// /   
 92/// </summary>   
 93/// <param name="sender"></param>   
 94/// <param name="e"></param>   
 95private void btn_DelNode_Click(object sender, System.EventArgs e)   
 96{   
 97if (Request["location"]==null) // 判断是否选择左边导航树节点   
 98{   
 99this.ShowErrMsg("请选择左边导航树节点,再做添加操作!");   
100return;   
101}   
102tree.DelTreeViewNode("nodeid","parentid","Purview_All",Curnodeid); // 递归删除节点   
103////// 删除Purview_User_Have中的相应记录   
104Delete_Purview_User_Have();   
105string str_Sql="select * from Purview_All";   
106if (YljWeb.Classes.SqlConn.GetRowCount(str_Sql)>0) // 如果树表中存在记录,就做遍历树等操作   
107{   
108btn_DelNode.Visible=true;   
109btn_AddBrotherNode.Visible=true;   
110btn_AddChildNode.Visible=true;   
111btn_AddRootNode.Visible=false;   
112}   
113else // 如果数表中不存在记录,就清空数   
114{   
115btn_DelNode.Visible=false;   
116btn_AddBrotherNode.Visible=false;   
117btn_AddChildNode.Visible=false;   
118btn_AddRootNode.Visible=true;   
119}   
120// 刷新左边树导航   
121lbl_Error.Text="<script language=\"javascript\">parent.frames(\"leftFrame\").document.location.reload();</"+"script>";   
122}   
123public void Delete_Purview_User_Have()   
124{   
125str_Sql = "Delete from Purview_User_Have where location like '"+ str_Location +"%'";   
126YljWeb.Classes.SqlConn.ExecuteSql(str_Sql);   
127}   
128/// <summary>   
129/// /   
130/// </summary>   
131/// <param name="sender"></param>   
132/// <param name="e"></param>   
133private void btn_AddRootNode_Click(object sender, System.EventArgs e)   
134{   
135// 下面增加根节点   
136string str_Sql="select * from Purview_All where parentid='0_'";   
137int count=int.Parse(YljWeb.Classes.SqlConn.GetRowCount(str_Sql).ToString());   
138if ( count != 0 )   
139{   
140this.ShowErrMsg("已经存在根结点,只能有一个根结点,填加失败!"); // 判断不能给跟节点增加兄弟节点   
141return;   
142}   
143string MyText = this.txt_Mytext.Text.ToString();   
144tree.AddRootNode("nodeid","order_id","parentid","location","mytext","Purview_All",MyText);   
145// 将最新加入的权限填加到Purview_User_Have预定义   
146Add_To_Purview_User_Have();   
147btn_DelNode.Visible=true;   
148btn_AddBrotherNode.Visible=true;   
149btn_AddChildNode.Visible=true;   
150btn_AddRootNode.Visible=false;   
151// 刷新左边树导航   
152lbl_Error.Text="<script language=\"javascript\">parent.frames(\"leftFrame\").document.location.reload();</"+"script>"; 
153
154}   
155/// <summary>   
156///   
157/// </summary>   
158/// <param name="sender"></param>   
159/// <param name="e"></param>   
160// public void node_Delete(Object sender, DataGridCommandEventArgs e)   
161// {   
162// string nodeid=e.Item.Cells[0].Text.ToString();   
163// this.ShowErrMsg("对不起,删除失败!原因:"+ nodeid);   
164// try   
165// {   
166// string deleteCmd = "Delete from Purview_All where nodeid ='"+ nodeid +"'";   
167// YljWeb.Classes.SqlConn.ExecuteSql(deleteCmd);   
168// BindGrid();   
169// }   
170// catch(Exception er)   
171// {   
172// this.ShowErrMsg("对不起,删除失败!原因:"+ er.Message);   
173// }   
174// /////////////// 在 1秒后自动刷新 //////////////////////////////////////////   
175// Response.Write("<meta http-equiv=refresh content=0>");   
176// }   
177/// <summary>   
178///   
179/// </summary>   
180/// <param name="source"></param>   
181/// <param name="e"></param>   
182// private void show_all_SortCommand(object source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e)   
183// {   
184// if(e.SortExpression==ViewState["Sort"].ToString() )   
185// {   
186// ViewState["Sort"]=ViewState["Sort"]+" desc";   
187// }   
188// else   
189// {   
190// ViewState["Sort"]=e.SortExpression;   
191// }   
192// BindGrid();   
193// }   
194/// <summary>   
195/// /   
196/// </summary>   
197/// <param name="sender"></param>   
198/// <param name="e"></param>   
199// private void show_all_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)   
200// {   
201// System.Web.UI.WebControls.Button TempBtn;   
202// TempBtn=(System.Web.UI.WebControls.Button)e.Item.FindControl("node_delete") ;   
203// if(object.Equals(TempBtn,null)==false)   
204// {   
205// TempBtn.Attributes.Add("onClick","javascript:return confirm('你确定要删除此结点及其子结点吗?')");   
206// }   
207// }   
208/// <summary>   
209/// ////////////////////////////// 弹出消息框 ////////////////////////////////////////   
210/// </summary>   
211/// <param name="MsgStr"></param>   
212private void ShowErrMsg(string MsgStr)   
213{   
214this.Response.Write("<script language='javascript'>");   
215this.Response.Write("alert('" +MsgStr + "');");   
216this.Response.Write("</script>

");
}

private void btn_CruNode_Modify_Click(object sender, System.EventArgs e)
{
string str_Sql = "Update Purview_All set mytext ='"+ MyText +"',command_name = '"+ MyText2 +"' where location = '"+ cru_location +"' ";
try
{
YljWeb.Classes.SqlConn.ExecuteSql(str_Sql);
/////// 修改Purview_User_Have,使之同步
Update_Purview_User_Have();
this.ShowErrMsg("修改成功");
Response.Write("

1<meta content="0" http-equiv="refresh"/>

");
lbl_Error.Text="

1<script language='\"javascript\"'></script>
Published At
Categories with Web编程
Tagged with
comments powered by Disqus