非递归生成的TreeView
生活随笔
收集整理的這篇文章主要介紹了
非递归生成的TreeView
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
| 開始還想去看那個(gè)遞歸的算法呢??基本沒看懂...不知道怎么結(jié)束遞歸的...自己想也沒想通.. 然后看看實(shí)際問題..反正我們是個(gè)小樹,只有右孩子 于是就用非遞歸了... 經(jīng)過這次折騰后 對(duì)SqlDataAdapter和SqlCommand有了更深的了解 先說下TreeView綁定的數(shù)據(jù)庫的結(jié)構(gòu) ZD_權(quán)限(權(quán)限名,權(quán)限編號(hào),上級(jí)權(quán)限,權(quán)限URL) 權(quán)限分配(用戶名,權(quán)限編號(hào))??????????類似學(xué)生-選課結(jié)構(gòu) - - 生成TreeView代碼 ----------------------------------------------------------------------------------------------- ????protected void BindDataBase() ????{ ????????string username = Request.Cookies["username"].Value; ????????//string username = "admin"; ????????SqlConnection conn =new SqlConnection(ConfigurationManager.AppSettings["Myconn"]); ?????? // clsDB dbo = new clsDB(); ?????? // SqlConnection conn1 =new SqlConnection(dbo.connectionString()); ????????string sqlstr1 = "SELECT ZD_權(quán)限.權(quán)限名,ZD_權(quán)限.上級(jí)權(quán)限,ZD_權(quán)限.權(quán)限URL,權(quán)限分配表.權(quán)限編號(hào) FROM ZD_權(quán)限 INNER JOIN 權(quán)限分配表 ON ZD_權(quán)限.權(quán)限編號(hào) = 權(quán)限分配表.權(quán)限編號(hào) WHERE (權(quán)限分配表.用戶名 ='"+ username +"' and 上級(jí)權(quán)限='000')"; ????????SqlDataAdapter da1 = new SqlDataAdapter(sqlstr1,conn); ????????DataSet ds1 = new DataSet(); ????????da1.Fill(ds1,"allfather"); ????????for(int i=0;i<ds1.Tables["allfather"].Rows.Count;i++) ????????{?? //父節(jié)點(diǎn)的創(chuàng)建 ????????????TreeNode tree2 = new TreeNode(); ????????????tree2.Text = ds1.Tables["allfather"].Rows["權(quán)限名"].ToString(); ????????????tree2.Target = "right";??//作用于右框架 ????????????tree2.SelectAction = TreeNodeSelectAction.Expand;??//父節(jié)點(diǎn)選中展開 ????????????TreeView1.Nodes.Add(tree2); ???????????? ????????????//子節(jié)點(diǎn)創(chuàng)建 ????????????string sqlstr2 = "SELECT ZD_權(quán)限.權(quán)限名,ZD_權(quán)限.上級(jí)權(quán)限,ZD_權(quán)限.權(quán)限URL,權(quán)限分配表.權(quán)限編號(hào) FROM ZD_權(quán)限 INNER JOIN 權(quán)限分配表 ON ZD_權(quán)限.權(quán)限編號(hào) = 權(quán)限分配表.權(quán)限編號(hào) WHERE (權(quán)限分配表.用戶名 ='"+ username +"' and 上級(jí)權(quán)限='"+ ds1.Tables["allfather"].Rows["權(quán)限編號(hào)"].ToString()+"')"; ????????????da1 = new SqlDataAdapter(sqlstr2, conn); ????????????DataSet ds2 = new DataSet(); ????????????da1.Fill(ds2, "allchild"); ????????????for (int j = 0; j < ds2.Tables["allchild"].Rows.Count; j++) ????????????{?? ????????????????TreeNode tree3 = new TreeNode(); ????????????????tree3.Text=ds2.Tables["allchild"].Rows[j]["權(quán)限名"].ToString(); ????????????????tree3.NavigateUrl = ds2.Tables["allchild"].Rows[j]["權(quán)限URL"].ToString(); ????????????????tree3.Target = "right";?? //作用于右框架 ????????????????tree2.ChildNodes.Add(tree3); ????????????} ????????} ????} |
轉(zhuǎn)載于:https://www.cnblogs.com/wpf123/archive/2009/04/21/2347498.html
總結(jié)
以上是生活随笔為你收集整理的非递归生成的TreeView的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: andorid 第五天 了解xml与应用
- 下一篇: ss.exe 命令参数应用