閱讀892 返回首頁    go 技術社區[雲棲]


Treeview中利用遞歸無限綁定

 

 

閑話少說:

 

①建立數據庫

 

②aspx

隻是一個treeview控件而已,可以設置它的樣式

 

③cs

 public partial class index : System.Web.UI.Page
    {
        private ProAndCityDataContext dc = new ProAndCityDataContext();

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                BindTreeview(null, 0);
            }
        }

        /// <summary>
        /// 根據父節點ID讀出該節點的內容
        /// </summary>
        /// <param name="parentNode">父節點ID</param>
        /// <returns></returns>
        public IEnumerable<ProAndCity> ReadProvince(int parentNode)
        {
            return from p in dc.ProAndCity
                   where p.ParentID == parentNode
                   select p;
        }


        /// <summary>
        /// 綁定Treeview
        /// </summary>
        /// <param name="n"></param>
        /// <param name="parentID"></param>
        private void BindTreeview(TreeNode n, int parentID)
        {
            foreach (ProAndCity p in ReadProvince(parentID))
            {
                if (parentID == 0)
                {
                    n = new TreeNode();
                    n.Text = p.Name;
                    n.Value = p.ID.ToString();
                    this.TreeView1.Nodes.Add(n);
                    BindTreeview(n, p.ID);              // 此時該節點的ID作為根節點,尋找子節點
                }
                else
                {
                    TreeNode n1 = new TreeNode();
                    n1.Text = p.Name;
                    n1.Value = p.ID.ToString();
                    n.ChildNodes.Add(n1);
                    BindTreeview(n1, p.ID);            // 此時該節點的ID作為根節點,尋找子節點
                }
            }
        }
    }

最後更新:2017-04-02 22:15:58

  上一篇:go Nullable&lt;&gt;基礎應用
  下一篇:go Dropdownlist添加一項——&quot;請選擇&quot;