王朝网络
分享
 
 
 

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

王朝c#·作者佚名  2006-12-17
宽屏版  字体: |||超大  

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

{

/// <summary>

/// TreeControl 的摘要说明。

/// </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;

}

/// <summary>

/// 获得某个字符串在另个字符串最后一次出现时后面所有字符

/// </summary>

/// <param name='strOriginal'>要处理的字符</param>

/// <param name='strSymbol'>符号</param>

/// <returns>返回值</returns>

public string GetLastStr(string strOriginal,string strSymbol)

{

int strPlace=strOriginal.LastIndexOf(strSymbol)+strSymbol.Length;

strOriginal=strOriginal.Substring(strPlace);

return strOriginal;

}

/// <summary>

/// 获得两个字符之间最后一次出现时的所有字符

/// </summary>

/// <param name='strOriginal'>要处理的字符</param>

/// <param name='strFirst'>最前哪个字符</param>

/// <param name='strLast'>最后哪个字符</param>

/// <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

{

/// <summary>

/// Tree_Left 的摘要说明。

/// </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);

}

/// <summary>

/// 设计器支持所需的方法 - 不要使用代码编辑器修改

/// 此方法的内容。

/// </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

{

/// <summary>

/// Tree_Operate 的摘要说明。

/// </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);

}

/// <summary>

/// 设计器支持所需的方法 - 不要使用代码编辑器修改

/// 此方法的内容。

/// </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();

}

/// <summary>

/// /////////

/// </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();//控件绑定

// }

/// <summary>

/// //////////

/// </summary>

/// <param name='sender'></param>

/// <param name='e'></param>

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='<script language=\'javascript\'>parent.frames(\'leftFrame\').document.location.reload();</'+'script>';

}

/// <summary>

/// /////////

/// </summary>

/// <param name='sender'></param>

/// <param name='e'></param>

private void btn_AddBrotherNode_Click(object sender, System.EventArgs e)

{

if (Request['location']==null) // 判断是否选择左边导航树导航

{

this.ShowErrMsg('请选择左边导航树节点,再做添加操作!');

return;

}

string str_Sql='select * from Purview_All where nodeid='+ Curnodeid +'and parentid='0_' ';

int count=int.Parse(YljWeb.Classes.SqlConn.GetRowCount(str_Sql).ToString());

if ( count != 0 )

{

this.ShowErrMsg('不能给根节点增加兄弟节点,请增加子节点!'); // 判断不能给跟节点增加兄弟节点

return;

}

str_Sql='select * from Purview_All where command_name=''+ MyText2 +''';

if ( YljWeb.Classes.SqlConn.IsExist(str_Sql) )

{

this.ShowErrMsg('对不起,已经存在此命令,请重新输入!');

return;

}

// 下面是增加兄弟节点

tree.AddBrotherNode2('nodeid','order_id','parentid','location','mytext','command_name','Purview_All',Curnodeid,MyText,MyText2); // 增加兄弟节点

// 将最新加入的权限填加到Purview_User_Have预定义

Add_To_Purview_User_Have();

// 刷新左边树导航

lbl_Error.Text='<script language=\'javascript\'>parent.frames(\'leftFrame\').document.location.reload();</'+'script>';

}

public void Add_To_Purview_User_Have()

{

////// 查出所有用户

string strSql_User = 'Select * from AdminUser ';

DataSet ds_user= new DataSet();

ds_user = YljWeb.Classes.SqlConn.ExecuteSqlForDataSet(strSql_User);

if ( ds_user.Tables[0].Rows.Count > 0 )

{

for ( int i = 0 ; i < ds_user.Tables[0].Rows.Count ; i ++ )

{

string strSql_Purview = 'Select top 1 * from Purview_All order by nodeid desc';

DataSet ds_purview= new DataSet();

ds_purview = YljWeb.Classes.SqlConn.ExecuteSqlForDataSet(strSql_Purview);

/////// 组合用户权限列表的项 /////////////////////

if ( ds_purview.Tables[0].Rows.Count > 0 )

{

for ( int j = 0 ; j < ds_purview.Tables[0].Rows.Count ; j ++ )

{

string username = ds_user.Tables[0].Rows[i]['username'].ToString().Trim();

string nodeid = ds_purview.Tables[0].Rows[j]['nodeid'].ToString().Trim();

string parentid = ds_purview.Tables[0].Rows[j]['parentid'].ToString().Trim();

string mytext = ds_purview.Tables[0].Rows[j]['mytext'].ToString().Trim();

string location = ds_purview.Tables[0].Rows[j]['location'].ToString().Trim();

string command_name = ds_purview.Tables[0].Rows[j]['command_name'].ToString().Trim();

string order_id = ds_purview.Tables[0].Rows[j]['order_id'].ToString().Trim();

try

{

//////// 写入用户权限数据库 ///////////////////////////

string 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)';

YljWeb.Classes.SqlConn.ExecuteSql(strSql_Insert);

}

catch(Exception er)

{

this.ShowErrMsg(' Sorry! 用户权限初始化失败!原因是:'+ er.Message);

}

}

}

else

{

this.ShowErrMsg('对不起,系统功能列表为空,请先设置功能列表!2秒自动转到功能设置页面');

}

}

////// 在这里是调用这个方法,所以最好不要出现以下提示

// this.ShowErrMsg(' 提示:用户权限初始化成功!');

}

else

{

this.ShowErrMsg('对不起,暂时没有用户,请先填加用户!2秒自动转到填加用户页面');

}

}

/// <summary>

/// /

/// </summary>

/// <param name='sender'></param>

/// <param name='e'></param>

private void btn_DelNode_Click(object sender, System.EventArgs e)

{

if (Request['location']==null) // 判断是否选择左边导航树节点

{

this.ShowErrMsg('请选择左边导航树节点,再做添加操作!');

return;

}

tree.DelTreeViewNode('nodeid','parentid','Purview_All',Curnodeid); // 递归删除节点

////// 删除Purview_User_Have中的相应记录

Delete_Purview_User_Have();

string str_Sql='select * from Purview_All';

if (YljWeb.Classes.SqlConn.GetRowCount(str_Sql)>0) // 如果树表中存在记录,就做遍历树等操作

{

btn_DelNode.Visible=true;

btn_AddBrotherNode.Visible=true;

btn_AddChildNode.Visible=true;

btn_AddRootNode.Visible=false;

}

else // 如果数表中不存在记录,就清空数

{

btn_DelNode.Visible=false;

btn_AddBrotherNode.Visible=false;

btn_AddChildNode.Visible=false;

btn_AddRootNode.Visible=true;

}

// 刷新左边树导航

lbl_Error.Text='<script language=\'javascript\'>parent.frames(\'leftFrame\').document.location.reload();</'+'script>';

}

public void Delete_Purview_User_Have()

{

str_Sql = 'Delete from Purview_User_Have where location like ''+ str_Location +'%'';

YljWeb.Classes.SqlConn.ExecuteSql(str_Sql);

}

/// <summary>

/// /

/// </summary>

/// <param name='sender'></param>

/// <param name='e'></param>

private void btn_AddRootNode_Click(object sender, System.EventArgs e)

{

// 下面增加根节点

string str_Sql='select * from Purview_All where parentid='0_'';

int count=int.Parse(YljWeb.Classes.SqlConn.GetRowCount(str_Sql).ToString());

if ( count != 0 )

{

this.ShowErrMsg('已经存在根结点,只能有一个根结点,填加失败!'); // 判断不能给跟节点增加兄弟节点

return;

}

string MyText = this.txt_Mytext.Text.ToString();

tree.AddRootNode('nodeid','order_id','parentid','location','mytext','Purview_All',MyText);

// 将最新加入的权限填加到Purview_User_Have预定义

Add_To_Purview_User_Have();

btn_DelNode.Visible=true;

btn_AddBrotherNode.Visible=true;

btn_AddChildNode.Visible=true;

btn_AddRootNode.Visible=false;

// 刷新左边树导航

lbl_Error.Text='<script language=\'javascript\'>parent.frames(\'leftFrame\').document.location.reload();</'+'script>';

}

/// <summary>

///

/// </summary>

/// <param name='sender'></param>

/// <param name='e'></param>

// public void node_Delete(Object sender, DataGridCommandEventArgs e)

// {

// string nodeid=e.Item.Cells[0].Text.ToString();

// this.ShowErrMsg('对不起,删除失败!原因:'+ nodeid);

// try

// {

// string deleteCmd = 'Delete from Purview_All where nodeid =''+ nodeid +''';

// YljWeb.Classes.SqlConn.ExecuteSql(deleteCmd);

// BindGrid();

// }

// catch(Exception er)

// {

// this.ShowErrMsg('对不起,删除失败!原因:'+ er.Message);

// }

// /////////////// 在 1秒后自动刷新 //////////////////////////////////////////

// Response.Write('<meta http-equiv=refresh content=0>');

// }

/// <summary>

///

/// </summary>

/// <param name='source'></param>

/// <param name='e'></param>

// private void show_all_SortCommand(object source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e)

// {

// if(e.SortExpression==ViewState['Sort'].ToString() )

// {

// ViewState['Sort']=ViewState['Sort']+' desc';

// }

// else

// {

// ViewState['Sort']=e.SortExpression;

// }

// BindGrid();

// }

/// <summary>

/// /

/// </summary>

/// <param name='sender'></param>

/// <param name='e'></param>

// private void show_all_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)

// {

// System.Web.UI.WebControls.Button TempBtn;

// TempBtn=(System.Web.UI.WebControls.Button)e.Item.FindControl('node_delete') ;

// if(object.Equals(TempBtn,null)==false)

// {

// TempBtn.Attributes.Add('onClick','javascript:return confirm('你确定要删除此结点及其子结点吗?')');

// }

// }

/// <summary>

/// ////////////////////////////// 弹出消息框 ////////////////////////////////////////

/// </summary>

/// <param name='MsgStr'></param>

private void ShowErrMsg(string MsgStr)

{

this.Response.Write('<script language='javascript'>');

this.Response.Write('alert('' +MsgStr + '');');

this.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('<meta http-equiv=refresh content=0>');

lbl_Error.Text='<script language=\'javascript\'>parent.frames(\'leftFrame\').document.location.reload();</'+'script>';

}

catch(Exception er)

{

this.ShowErrMsg('对不起,修改失败!原因:'+ er.Message);

}

}

public void Update_Purview_User_Have()

{

str_Sql = 'Update Purview_User_Have set mytext =''+ MyText +'',command_name = ''+ MyText2 +'' where location = ''+ cru_location +'' ';

YljWeb.Classes.SqlConn.ExecuteSql(str_Sql);

}

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
>>返回首页<<
推荐阅读
 
 
频道精选
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有