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>