try
{
if(!Page.IsPostBack)
{
Stack s1 = new Stack();
Stack s2 = new Stack();
Stack s3 = new Stack();
s1.Push("00");
string temp = "";
string strSql = "select rights.right_code from rights,user_right where rights.right_code=user_right.right_code and user_right.user_code='"+Session["UserCode"].ToString()+"' order by rights.right_code desc";
mySQL.strConn="server=localhost;database=LIMS;uid=sa;pwd=sa;";
DataView dv = (DataView)mySQL.ExecuteDataSource(strSql);
for(int i=0;i<dv.Count;i++)
{
while(s1.Count>0)
{
temp = s1.Pop().ToString();
if(temp != dv[i]["RIGHT_CODE"].ToString().Substring(0,temp.Length))
break;
}
s1.Push(temp);
for(int j=dv[i]["RIGHT_CODE"].ToString().Length/2;j>0;j--)
s1.Push(dv[i]["RIGHT_CODE"].ToString().Substring(0,2*j));
}
while(s1.Count>0)
{
s2.Push(s1.Pop());
}
s2.Pop();
//È¡Ê÷ÐÍÊý¾ÝÅÅÁÐs2
strSql = "select right_code,right_name,page_code from rights order by right_code";
dv.Dispose();
dv = (DataView)mySQL.ExecuteDataSource(strSql);
dv.Sort = "right_code";
DataRowView drv;
while(s2.Count>0)
{
temp = s2.Pop().ToString();
Microsoft.Web.UI.WebControls.TreeNode cc = new Microsoft.Web.UI.WebControls.TreeNode();
drv = dv.FindRows(temp)[0];
if(drv["Page_Code"].ToString()=="")
{
cc.Text = drv["right_name"].ToString();
while(s3.Count>0)
{
temp = s1.Pop().ToString();
if(temp.Length>drv["right_code"].ToString().Length)
cc.Nodes.Add((Microsoft.Web.UI.WebControls.TreeNode)s3.Pop());
else
{
s1.Push(temp);
break;
}
}
}
else
{
cc.Text = drv["right_name"].ToString();
cc.NavigateUrl = drv["page_code"].ToString().Substring(0,drv["page_code"].ToString().IndexOf(';'));
//as frame used, using following coding to set target of a hyperlink
// if(cc.Text=="select checkout") // {
// cc.Target="_blank";
// }
// else
// {
cc.Target = "main";
// }
}
s3.Push(cc);
s1.Push(drv["right_code"].ToString());
}
while(s3.Count>0)
this.TreeView1.Nodes.Add((Microsoft.Web.UI.WebControls.TreeNode)s3.Pop());
s1.Clear();
}
}
catch
{return;}