📄 defaulttree.aspx.cs
字号:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.Threading;
//该源码首发自www.51aspx.com(51aspx.com)
public partial class DefaultTree : System.Web.UI.Page
{
SqlDataAdapter da = null;
SqlConnection con = new SqlConnection("server=(local);database=GHRQ;uid=sa;pwd=sa");
ArrayList dep = new ArrayList();
DataSet TreeTable = new DataSet();
int j = 0;
int count = 0;
int depth = 0;
string none = "none"; //------------none 默认树全部认合上 blcok 全部展开
string plus = "plus.gif";
bool checkBox = true;
//------------无checkbox 就为false 有的话就为true
protected void Page_Load(object sender, EventArgs e)
{
//none = "blcok";
//plus = "minus.gif";
//checkBox = false;
GetTreeInformation("admin");
}
//判断父亲接点是否还有兄弟
public bool JudgeBrother(string current, int i)
{
string nextnode;
bool flag =true;
while (true)
{
i++;
if (i == count - 1)
{
break;
}
nextnode = TreeTable.Tables[0].Rows[i]["ID"].ToString().Trim();
if (nextnode.Length > current.Length) //比他长可能是叶子,在下一级
{
continue;
}
else if (nextnode.Length < current.Length)
{
break;
}
else //有兄弟
{
flag = false;
break;
}
}
return flag;
}
//有兄弟是false;
public void GetTreeInformation(string username)
{
int i = 1;
da = new SqlDataAdapter("select * from MenuFunc123 order by ID", con);
da.Fill(TreeTable);
this.count = TreeTable.Tables[0].Rows.Count;
Response.Write( "<div class='stylediv'>");
Response.Write( "<img id=nolines0 src='minus_nolines.gif' width='18px' height='18px' onClick=ClickMenu('maindiv','nolines','0') align='absmiddle' />");
if (checkBox)
{
Response.Write("<input id='Checkbox0' onClick=SelectBox('maindiv',this) type='checkbox' />");
}
Response.Write( "<img id=open0 src='open.gif' width='16px' height='16px' align='absmiddle' />");
Response.Write( "<a onmousemove='ChangeColora(this)' onmouseleave='ChangeColorb(this)'><span class='stylespan' id='span_0' > 港华燃气</span></a></div>");
Response.Write("<div id='maindiv' belongCheckbox='Checkbox0' >"); //belongCheckbox='Checkbox0' 属于这个div 的checkbox
Response.Write( "<div class='stylediv'>");
Response.Write( "<img src='empty.gif' width='18px' height='18px' align='absmiddle' />");
for (int mm = depth; mm >0; mm--) //计算横向深度 添加竖线
{
Response.Write("<img src='line.gif' width='18px' height='18px' align='absmiddle' />");
}
Response.Write("<img id=plus" + i.ToString() + " src='" + plus + "' width='18px' height='18px' onClick=ClickMenu('div_" + i.ToString() + "','plus','" + i.ToString() + "') align='absmiddle' />");
if (checkBox)
{
Response.Write("<input id='Checkbox" + i.ToString() + "' onClick=SelectBox('div_" + i.ToString() + "',this) type='checkbox' />");
//---------checkbox 上嵌套两个div ,最上方的div 保存了 checkbox 的 id 就是(belongCheckbox)
}
Response.Write( "<img id=open" + i.ToString() + " src='open.gif' width='16px' height='16px' align='absmiddle' />");
Response.Write("<a onmousemove='ChangeColora(this)' onmouseleave='ChangeColorb(this)'>" + "<span class='stylespan' id='span_" + i.ToString() + "'> " + TreeTable.Tables[0].Rows[i]["FuncName"].ToString() + "</SPAN></a></div>");
Response.Write("<div id='div_" + i.ToString() + "' belongCheckbox='Checkbox" + i.ToString() + "' style='display: " + none + "'>");
this.depth++; //-----------------------------------第一级------------------------------
dep.Add(false);
CreatTrees(TreeTable.Tables[0].Rows[1]["ID"].ToString().Trim(), TreeTable.Tables[0].Rows[2]["ID"].ToString().Trim(), TreeTable.Tables[0].Rows[2]["FuncName"].ToString().Trim(), 2,false);
Response.Write( "</div>");
Response.Write( "</div>");
}
//flag=true 表示无兄弟
void CreatTrees(string por, string current, string currentname, int i,bool flag) //i的位置跟current 一样
{
if (i == count - 1) //说名是最后一个
{
Response.Write( "<div class='stylediv'>");
Response.Write("<img src='empty.gif' width='18px' height='18px' align='absmiddle' />");
for (int mm = depth; mm > 0; mm--)
{
if (flag && mm == 1 && depth < 2)
{
Response.Write("<img src='empty.gif' width='18px' height='18px' align='absmiddle' />");
break;
}
Response.Write("<img src='line.gif' width='18px' height='18px' align='absmiddle' />");
}
Response.Write( "<img src='joinbottom.gif' width='18px' height='18px' align='absmiddle' />");
if (checkBox)
{
Response.Write("<input id='Checkbox" + i.ToString() + "' onClick=SelectBox('div_" + i.ToString() + "',this) type='checkbox' />");
}
Response.Write( "<img src='folder.gif' width='16px' height='16px' align='absmiddle' />");
Response.Write("<a target=\"mainFrame\" onmousemove='ChangeColora(this)' onmouseleave='ChangeColorb(this)' href='JumpPage.htm?page=" + TreeTable.Tables[0].Rows[i]["FuncUrl"].ToString().Trim() + "'>" + "<span class='stylespan' id='span_" + i.ToString() + "'> " + currentname + "</span></a></div>");
}
else
{
string nextnode = TreeTable.Tables[0].Rows[i + 1]["ID"].ToString().Trim();
if (current.Length > por.Length) //比他长可能是叶子,在下一级
{
if (current.Length < nextnode.Length) //说名他也是一个父亲接点
{
Response.Write( "<div class='stylediv'>");
Response.Write( "<img src='empty.gif' width='18px' height='18px' align='absmiddle' />");
flag=JudgeBrother(current, i);
for (int mm = depth; mm > 0; mm--)
{
if (flag&&mm==1&&depth<2)
{
Response.Write("<img src='empty.gif' width='18px' height='18px' align='absmiddle' />");
break;
}
Response.Write("<img src='line.gif' width='18px' height='18px' align='absmiddle' />");
}
Response.Write("<img id=plus" + i.ToString() + " src='" + plus + "' width='18px' height='18px' onClick=ClickMenu('div_" + i.ToString() + "','plus','" + i.ToString() + "') align='absmiddle' />");
if (checkBox)
{
Response.Write("<input id='Checkbox" + i.ToString() + "' onClick=SelectBox('div_" + i.ToString() + "',this) type='checkbox' />");
}
Response.Write( "<img id=open" + i.ToString() + " src='open.gif' width='16px' height='16px' align='absmiddle' />");
Response.Write("<a onmousemove='ChangeColora(this)' onmouseleave='ChangeColorb(this)'>" + "<span class='stylespan' id='span_" + i.ToString() + "'> " + TreeTable.Tables[0].Rows[i]["FuncName"].ToString().Trim() + "</SPAN></a></div>");
Response.Write("<div id='div_" + i.ToString() + "' belongCheckbox='Checkbox" + i.ToString() + "' style='display: " + none + "'>");
this.depth++;
dep.Add(flag);
CreatTrees(current, TreeTable.Tables[0].Rows[i + 1]["ID"].ToString().Trim(), TreeTable.Tables[0].Rows[i + 1]["FuncName"].ToString().Trim(), i + 1,flag);
}
else if (current.Length == nextnode.Length)//--------------------他就是叶子------------
{
Response.Write( "<div class='stylediv'>");
Response.Write( "<img src='empty.gif' width='18px' height='18px' align='absmiddle' />");
int nn = 0;
for (int mm = depth; mm > 0; mm--)
{
if (flag && mm == 1)
{
Response.Write("<img src='empty.gif' width='18px' height='18px' align='absmiddle' />");
break;
}
if (dep[nn].ToString() == "False")
Response.Write("<img src='line.gif' width='18px' height='18px' align='absmiddle' />");
if (dep[nn++].ToString() == "True")
Response.Write("<img src='empty.gif' width='18px' height='18px' align='absmiddle' />");
}
Response.Write( "<img src='join.gif' width='18px' height='18px' align='absmiddle' />");
if (checkBox)
{
Response.Write("<input id='Checkbox" + i.ToString() + "' onClick=SelectBox('div_" + i.ToString() + "',this) type='checkbox' />");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -