您目前尚未登陆,请选择【登陆】或【注册
首页->功能源码->无限级树形菜单(Sql数据库)>>DefaultTree.aspx.cs>>源码在线查看
温馨提示:代码在线浏览功能只能做为源码浏览参考,如果想更进一步了解该代码请下载:无限级树形菜单(Sql数据库)
当前文件:文件类型 SqlTree/DefaultTree.aspx.cs打开代码结构图
普通视图
		            
1using System; 2using System.Data; 3using System.Configuration; 4using System.Collections; 5using System.Web; 6using System.Web.Security; 7using System.Web.UI; 8using System.Web.UI.WebControls; 9using System.Web.UI.WebControls.WebParts; 10using System.Web.UI.HtmlControls; 11using System.Data.SqlClient; 12using System.Threading; 13 14//该源码下载自www.51aspx.com(51aspx.com) 15 16public partial class DefaultTree : System.Web.UI.Page 17{ 18 19 string sql = null; 20 SqlDataAdapter da = null; 21 SqlConnection con = new SqlConnection("server=(local);database=GHRQ;uid=sa;pwd=sa"); 22 int j = 0; 23 int count = 0; 24 int depth = 0; 25 ArrayList dep = new ArrayList(); 26 DataSet TreeTable = new DataSet(); 27 public string html = ""; 28 29 protected void Page_Load(object sender, EventArgs e) 30 { 31 32 if (!Page.IsPostBack) 33 { 34 35 36 //GetUserName("admin"); 37 } 38 } 39 40 41 42 43 //判断父亲接点是否还有兄弟 44 public bool JudgeBrother(string current, int i) 45 { 46 string nextnode; 47 bool flag =true; 48 while (true) 49 { 50 i++; 51 if (i == count - 1) 52 { 53 break; 54 } 55 nextnode = TreeTable.Tables[0].Rows[i]["ID"].ToString().Trim(); 56 if (nextnode.Length > current.Length) //比他长可能是叶子,在下一级 57 { 58 continue; 59 } 60 else if (nextnode.Length < current.Length) 61 { 62 break; 63 } 64 else //有兄弟 65 { 66 flag = false; 67 break; 68 } 69 70 } 71 return flag; 72 73 } 74 //有兄弟是false; 75 76 public void GetUserName(string username) 77 { 78 int i = 1; 79 da = new SqlDataAdapter("select * from MenuFunc123 order by ID", con); 80 da.Fill(TreeTable); 81 this.count = TreeTable.Tables[0].Rows.Count; 82 83 Response.Write( "<div class='stylediv'onClick=ClickMenu('maindiv','nolines','0')>"); 84 Response.Write( "<img id=nolines0 src='plus_nolines.gif' width='18px' height='18px' align='absmiddle' />"); 85 Response.Write( "<img id=open0 src='open.gif' width='16px' height='16px' align='absmiddle' />"); 86 Response.Write( "<a onmousemove='ChangeColora(this)' onmouseleave='ChangeColorb(this)'><span class='stylespan'>港华燃气</span></a></div>"); 87 Response.Write( "<div id='maindiv'>"); 88 89 Response.Write( "<div class='stylediv'onClick=ClickMenu('div_" + i.ToString() + "','plus','" + i.ToString() + "')>"); 90 Response.Write( "<img src='empty.gif' width='18px' height='18px' align='absmiddle' />"); 91 for (int mm = depth; mm >0; mm--) 92 { 93 Response.Write("<img src='line.gif' width='18px' height='18px' align='absmiddle' />"); 94 } 95 Response.Write( "<img id=plus" + i.ToString() + " src='plus.gif' width='18px' height='18px' align='absmiddle' />"); 96 Response.Write( "<img id=open" + i.ToString() + " src='open.gif' width='16px' height='16px' align='absmiddle' />"); 97 Response.Write( "<a onmousemove='ChangeColora(this)' onmouseleave='ChangeColorb(this)'>" + "<span class='stylespan'>" + TreeTable.Tables[0].Rows[i]["FuncName"].ToString().Trim() + "</SPAN></a></div>"); 98 Response.Write( "<div id='div_" + i.ToString() + "' style='display: none'>"); 99 this.depth++; //第一级 100 101 dep.Add(false); 102 //string ff = dep[0].ToString(); 103 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); 104 Response.Write( "</div>"); 105 Response.Write( "</div>"); 106 } 107 108 //flag=true 表示无兄弟 109 void CreatTrees(string por, string current, string currentname, int i,bool flag) //i的位置跟current 一样 110 { 111 if (i == count - 1) //说名是最后一个 112 { 113 Response.Write( "<div class='stylediv'>"); 114 Response.Write("<img src='empty.gif' width='18px' height='18px' align='absmiddle' />"); 115 for (int mm = depth; mm > 0; mm--) 116 { 117 if (flag && mm == 1 && depth < 2) 118 { 119 Response.Write("<img src='empty.gif' width='18px' height='18px' align='absmiddle' />"); 120 break; 121 } 122 Response.Write("<img src='line.gif' width='18px' height='18px' align='absmiddle' />"); 123 } 124 Response.Write( "<img src='joinbottom.gif' width='18px' height='18px' align='absmiddle' />"); 125 Response.Write( "<img src='folder.gif' width='16px' height='16px' align='absmiddle' />"); 126 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'> " + currentname + "</span></a></div>"); 127 } 128 else 129 { 130 string nextnode = TreeTable.Tables[0].Rows[i + 1]["ID"].ToString().Trim(); 131 if (current.Length > por.Length) //比他长可能是叶子,在下一级 132 { 133 134 if (current.Length < nextnode.Length) //说名他也是一个父亲接点 135 { 136 137 Response.Write( "<div class='stylediv'onClick=ClickMenu('div_" + i.ToString() + "','plus','" + i.ToString() + "')>"); 138 Response.Write( "<img src='empty.gif' width='18px' height='18px' align='absmiddle' />"); 139 flag=JudgeBrother(current, i); 140 141 for (int mm = depth; mm > 0; mm--) 142 { 143 if (flag&&mm==1&&depth<2) 144 { 145 Response.Write("<img src='empty.gif' width='18px' height='18px' align='absmiddle' />"); 146 break; 147 } 148 Response.Write("<img src='line.gif' width='18px' height='18px' align='absmiddle' />"); 149 } 150 Response.Write( "<img id=plus" + i.ToString() + " src='plus.gif' width='18px' height='18px' align='absmiddle' />"); 151 Response.Write( "<img id=open" + i.ToString() + " src='open.gif' width='16px' height='16px' align='absmiddle' />"); 152 Response.Write( "<a onmousemove='ChangeColora(this)' onmouseleave='ChangeColorb(this)'>" + "<span class='stylespan'>" + TreeTable.Tables[0].Rows[i]["FuncName"].ToString().Trim() + "</SPAN></a></div>"); 153 Response.Write( "<div id='div_" + i.ToString() + "' style='display: none'>"); 154 155 this.depth++; 156 dep.Add(flag); 157 CreatTrees(current, TreeTable.Tables[0].Rows[i + 1]["ID"].ToString().Trim(), TreeTable.Tables[0].Rows[i + 1]["FuncName"].ToString().Trim(), i + 1,flag); 158 159 } 160 else if (current.Length == nextnode.Length)//--------------------他就是叶子------------ 161 { 162 //Response.Write( "<div class='treenode" + depth.ToString() + "'><img src='style/icons/folder.gif' /><a target=\"mainFrame\" href='JumpPage.htm?page=" + TreeTable.Tables[0].Rows[i]["FuncUrl"].ToString().Trim() + "'>" + " " + currentname + "</a></div>"; 163 Response.Write( "<div class='stylediv'>"); 164 Response.Write( "<img src='empty.gif' width='18px' height='18px' align='absmiddle' />"); 165 166 //for (int mm = depth; mm > 0; mm--) 167 //{ 168 // if (flag && mm == 1) 169 // { 170 // Response.Write("<img src='empty.gif' width='18px' height='18px' align='absmiddle' />"); 171 // break; 172 // } 173 // Response.Write("<img src='line.gif' width='18px' height='18px' align='absmiddle' />"); 174 //} 175 int nn = 0; 176 for (int mm = depth; mm > 0; mm--) 177 { 178 179 if (flag && mm == 1) 180 { 181 Response.Write("<img src='empty.gif' width='18px' height='18px' align='absmiddle' />"); 182 break; 183 } 184 if (dep[nn].ToString() == "False") 185 Response.Write("<img src='line.gif' width='18px' height='18px' align='absmiddle' />"); 186 if (dep[nn++].ToString() == "True") 187 Response.Write("<img src='empty.gif' width='18px' height='18px' align='absmiddle' />"); 188 } 189 Response.Write( "<img src='join.gif' width='18px' height='18px' align='absmiddle' />"); 190 Response.Write( "<img src='folder.gif' width='16px' height='16px' align='absmiddle' />"); 191 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'> " + currentname + "</span></a></div>"); 192 CreatTrees(current, TreeTable.Tables[0].Rows[i + 1]["ID"].ToString().Trim(), TreeTable.Tables[0].Rows[i + 1]["FuncName"].ToString().Trim(), i + 1, flag); 193 } 194 else //长度比下一个大,下一个在上级,又是叶子。 195 { 196 //Response.Write( "<div class='treenode" + depth.ToString() + "'><img src='style/icons/folder.gif' /><a target=\"mainFrame\" href='JumpPage.htm?page=" + TreeTable.Tables[0].Rows[i]["FuncUrl"].ToString().Trim() + "'>" + " " + currentname + "</a></div>"; 197 Response.Write( "<div class='stylediv'>"); 198 Response.Write( "<img src='empty.gif' width='18px' height='18px' align='absmiddle' />"); 199 200 for (int mm = depth; mm > 0; mm--) 201 { 202 if (flag && mm == 1) 203 { 204 Response.Write("<img src='empty.gif' width='18px' height='18px' align='absmiddle' />"); 205 break; 206 } 207 Response.Write("<img src='line.gif' width='18px' height='18px' align='absmiddle' />"); 208 } 209 Response.Write( "<img src='joinbottom.gif' width='18px' height='18px' align='absmiddle' />"); 210 Response.Write( "<img src='folder.gif' width='16px' height='16px' align='absmiddle' />"); 211 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'> " + currentname + "</span></a></div>"); 212 213 CreatTrees(current, TreeTable.Tables[0].Rows[i + 1]["ID"].ToString().Trim(), TreeTable.Tables[0].Rows[i + 1]["FuncName"].ToString().Trim(), i + 1, flag); 214 215 } 216 217 } 218 else if (current.Length < por.Length)//比他短,他出在上一及 219 { 220 221 222 int j = (por.Length) / 2 - (current.Length) / 2; 223 while (j > 0) 224 { 225 Response.Write( "</div>"); 226 this.depth--; 227 this.dep.RemoveAt(this.depth); 228 j--; 229 230 } 231 if (current.Length < nextnode.Length) //说名他也是一个父亲接点 232 { 233 234 //Response.Write( "<div class='title" + depth.ToString() + "'onClick='ClickMenu(classa_" + i.ToString() + ",imgb_" + i.ToString() + ")' onmousemove='ChangeColora(b" + i.ToString() + ")' onmouseleave='ChangeColorb(b" + i.ToString() + ")'><img src='style/icons/folder.png' id='imgb_" + i.ToString() + "' /><a style='cursor: hand' id='b" + i.ToString() + "'>" + " " + currentname + "</a></div>"; // TreeTable.Tables[0].Rows[i]["FuncName"].ToString().Trim() 235 //Response.Write( "<div id='classa_" + i.ToString() + "' style='display: none'>"; 236 Response.Write( "<div class='stylediv'onClick=ClickMenu('div_" + i.ToString() + "','plus','" + i.ToString() + "')>"); 237 Response.Write( "<img src='empty.gif' width='18px' height='18px' align='absmiddle' />"); 238 flag = JudgeBrother(current, i); 239 for (int mm = depth; mm > 0; mm--) 240 { 241 if (flag && mm == 1 && depth < 2) 242 { 243 Response.Write("<img src='empty.gif' width='18px' height='18px' align='absmiddle' />"); 244 break; 245 } 246 Response.Write("<img src='line.gif' width='18px' height='18px' align='absmiddle' />"); 247 } 248 Response.Write( "<img id=plus" + i.ToString() + " src='plus.gif' width='18px' height='18px' align='absmiddle' />"); 249 Response.Write( "<img id=open" + i.ToString() + " src='open.gif'width='16px' height='16px' align='absmiddle' />"); 250 Response.Write( "<a onmousemove='ChangeColora(this)' onmouseleave='ChangeColorb(this)'>" + "<span class='stylespan'>" + TreeTable.Tables[0].Rows[i]["FuncName"].ToString().Trim() + "</SPAN></a></div>"); 251 Response.Write( "<div id='div_" + i.ToString() + "' style='display: none'>"); 252 253 this.depth++; 254 dep.Add(flag); 255