TreeView (後台)和Javascript(前台) 實現的無限級樹

來源:互聯網
上載者:User

  在資料庫中有這樣的一張表(常見的地區選擇也會是類似的結構),主要包括 ID、Name、ParentID,

以實現無限級層樹的效果,怎樣把這樣的樹展現出來呢?這裡分別通過前後台兩種方法實現。

1、後台通過綁定到TreeView,實現無限級的樹。

  

View Code

 1  protected void Page_Load(object sender, EventArgs e) 2         { 3             CinemaGroupBLL bll = new CinemaGroupBLL(); 4  5             BindTreeView(bll.GetAllGroup(),TreeView1.Nodes,"0"); 6         } 7  8  9         //繫結資料行表10         private void BindTreeView(DataTable dataTable, TreeNodeCollection TreeNodes, string parentId)11         {12             DataView dataView = new DataView(dataTable);13             TreeNode node;14             dataView.RowFilter = "ParentID=" + "'" + parentId + "'";15             dataView.Sort = "SortNum DESC";16             foreach (DataRowView dataRowView in dataView)17             {18                 node = new TreeNode();19                 node.Text = dataRowView["GroupName"].ToString();20 21                 TreeNodes.Add(node);22                 BindTreeView(dataTable, node.ChildNodes, dataRowView["GroupID"].ToString());23             }24         }

 

2、通過前台擷取指定格式的JSON資料,拼接資料形成樹層。

View Code

<script type="text/javascript">        var temp = [{ 'ID': 1, 'Name': '總部', 'ParentID': 0 },                    { 'ID': 2, 'Name': '武漢分公司', 'ParentID': 1 },                    { 'ID': 3, 'Name': '北京分公司', 'ParentID': 1 },                    { 'ID': 4, 'Name': '武漢影院1', 'ParentID': 2 },                    { 'ID': 5, 'Name': '群光廣場', 'ParentID': 4 },                    { 'ID': 6, 'Name': '麥當勞', 'ParentID': 5 },                    { 'ID': 6, 'Name': '北京XX影院', 'ParentID': 3 }        ];        $(function () {                        var arr = [''];                        CreateTree(temp, arr, 0);                        var str = arr.join('');                        //去除空的<ul></ul>                        str = str.replace(/<ul>\s*<\/ul>/g, '');                        $('#treeDiv').html(str);                    });        //遞迴建立樹        function CreateTree(Json, arrHtml, parnetID) {            if (Json == null || Json.length < 1) {                return;            }            arrHtml.push('<ul>');            for (var i = 0, len = Json.length; i < len; i++) {                if (parnetID == Json[i]['ParentID']) {                    arrHtml.push('<li>'+Json[i]['Name']+'</li>');                    arrHtml.push('<ul>');                    for (var j = 0, len = Json.length; j < len; j++) {                        if (Json[i]['ID'] == Json[j]['ParentID']) {                            arrHtml.push('<li>' + Json[j]['Name'] + '</li>');                            CreateTree(Json,arrHtml,Json[j]['ID']);                         }                    }                    arrHtml.push('</ul>');                 }            }            arrHtml.push('</ul>');         }        </script>

js實現的為:

 

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.