树形和仿树形下拉框

一般来说树形下拉框是这样的



接收的数据格式是这样的 id-pid-children模式



上面这中数据格式可以这样子来
var jsonDB = [
                { id: 1, pid: 0, name: "XX公司" },
                { id: 2, pid: 1, name: "人事部" },
                { id: 3, pid: 1, name: "行政部" },
                { id: 4, pid: 1, name: "开发部" },
                { id: 5, pid: 4, name: "开发小组1" },
                { id: 6, pid: 4, name: "开发小组2" },
                { id: 7, pid: 4, name: "开发小组3" },
                { id: 8, pid: 7, name: "开发小组3单小弟" },
                { id: 9, pid: 7, name: "开发小组3单小弟" }
            ];
var data= arrayToTree(jsonDB, "id", "pid")      



 //将ID、ParentID这种数据格式转换为树格式
 function arrayToTree(data, id, pid)     
        {
            if (!data || !data.length) return [];
            var targetData = [];                    //存储数据的容器(返回)
            var records = {};
            var itemLength = data.length;           //数据集合的个数
            for (var i = 0; i < itemLength; i++) {
                var o = data[i];
                records[o[id]] = o;
            }
            for (var i = 0; i < itemLength; i++) {
                var currentData = data[i];
                var parentData = records[currentData[pid]];
                if (!parentData) {
                    targetData.push(currentData);
                    continue;
                }
                parentData.children = parentData.children || [];
                parentData.children.push(currentData);
            }
            return targetData;
        }
 
而 仿树形下拉是这样的




代码是这样的,从上面小改一下

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication2._Default" %>
<asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="server">
    <script type="text/javascript">
        $(function () {
            var jsonDB = [
                { id: 1, pid: 0, name: "XX公司" },
                { id: 2, pid: 1, name: "人事部" },
                { id: 3, pid: 1, name: "行政部" },
                { id: 4, pid: 1, name: "开发部" },
                { id: 5, pid: 4, name: "开发小组1" },
                { id: 6, pid: 4, name: "开发小组2" },
                { id: 7, pid: 4, name: "开发小组3" },
                { id: 8, pid: 7, name: "开发小组3单小弟" },
                { id: 9, pid: 7, name: "开发小组3单小弟" }
            ];
            var data1 = [];
            var data2 = arrayToTree(jsonDB, "id", "pid", data1);
            for (var i = 0; i < data1.length; i++)
            {
                $("#demo").append("<option value=\"" + data1[i].id + "\">" + data1[i].name + "</option>");
            }
        });
        //将ID、ParentID这种数据格式转换为树格式
        function arrayToTree(data, id, pid,data2) {
            if (!data || !data.length) return [];
            var targetData = [];                    //存储数据的容器(返回)
            var records = {};
            var itemLength = data.length;           //数据集合的个数
            for (var i = 0; i < itemLength; i++) {
                var o = data[i];
                records[o[id]] = o;
            }
            for (var i = 0; i < itemLength; i++) {
                var currentData = data[i];
                var parentData = records[currentData[pid]];
                if (!parentData) {
                    currentData["prefix"] = "|--";
                    //alert(currentData["name"]);
                    data2.push(currentData);
                    currentData["name"] = currentData["prefix"] + currentData["name"];
                    targetData.push(currentData);
                    continue;
                }
               
                currentData["prefix"] = parentData["prefix"] + "|--";
                //alert(currentData["prefix"]);
                parentData.children = parentData.children || [];
                parentData.children.push(currentData);
                currentData["name"] = currentData["prefix"] + currentData["name"];
                data2.push(currentData);
            }
            return targetData;
        }
    </script>
    <select id="demo"></select>
</asp:Content>

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值