TreeView无限极分类绑定(从数据库读取数据源)
生活随笔
收集整理的這篇文章主要介紹了
TreeView无限极分类绑定(从数据库读取数据源)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
TreeView這個控件其實我本來不怎么會用到,今天有一個項目要用到,而且是無限極的分類數據綁定,于是就根據自己以前寫過的代碼別寫出了這個無限極分類的例子,呵呵希望能夠對大家有所幫助,本人盡量把注釋寫的詳細一些把,因為有的時候搜問題到別人的博客,寫的代碼完全看不懂,每個人寫代碼可能都有一定的習慣,所以一定要多寫一些注釋讓別人看懂!
首先說一下我的數據庫結構
Pid ? ? ? ? ? ? ? ?主鍵自動增長
PartName ? ? ? 分類名稱
ParentId ? ? ? ?父級ID
相信大家一定都會很熟悉吧,這是無限極分類比較常用的一種設計思路!好了接下來看代碼吧,自己認為這個還是很強大的,使用了遞歸的操作,大大減少了代碼量!
????????///?<summary>??????????///?控件綁定父節點?
????????///?</summary>??
????????private?void?TreeViewBind()
????????{
????????????DataSet?ds?=?pbll.GetList("");???//數據源讀取所有數據
????????????DataView?dv?=?ds.Tables[0].DefaultView;
????????????dv.RowFilter?=?"ParentId=0";???//篩選ParentId=0為頂級分類
????????????TreeView1.ShowCheckBoxes?=?TreeNodeTypes.All;
????????????foreach?(DataRowView?drv?in?dv)
????????????{
????????????????TreeNode?node?=?new?TreeNode();
????????????????node.Text?=?drv["PartName"].ToString();
????????????????node.Value?=?drv["Pid"].ToString();
????????????????node.Expanded?=?false;
????????????????TreeView1.Nodes.Add(node);
????????????????AddReplies(dv,?node);
????????????}
????????}
????????///?<summary>??
????????///?遞歸綁定子節點??
????????///?</summary>??
????????///?<param?name="dv"></param>??
????????///?<param?name="node"></param>??
????????private?void?AddReplies(DataView?dv,?TreeNode?node)
????????{
????????????dv.RowFilter?=?"ParentId='"?+?node.Value?+?"'";
????????????foreach?(DataRowView?row?in?dv)
????????????{
????????????????TreeNode?replyNode?=?new?TreeNode();
????????????????replyNode.Text?=?row["PartName"].ToString();
????????????????replyNode.Value?=?row["Pid"].ToString();
????????????????replyNode.Expanded?=?false;
????????????????node.ChildNodes.Add(replyNode);
????????????????AddReplies(dv,?replyNode);
????????????}
????????}
好了就是這些了,有不明白的地方可以留言,更多精品免費源碼盡在天天源碼論壇(www.ttyuanma.com)
轉載于:https://www.cnblogs.com/tangxueyang/archive/2011/07/13/2105725.html
總結
以上是生活随笔為你收集整理的TreeView无限极分类绑定(从数据库读取数据源)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: How to use fb.data.q
- 下一篇: python各种语言间时间的转化